From 2876c13d7ae1bdc314a66b9a968e93aed8213405 Mon Sep 17 00:00:00 2001 From: Nicholas Reimer Date: Thu, 24 Jul 2025 14:24:06 -0600 Subject: [PATCH 1/2] updated AST tests for SEI AST changes --- clang/include/clang/AST/ASTNodeTraverser.h | 63 +- clang/include/clang/AST/JSONNodeDumper.h | 49 +- clang/include/clang/AST/TextNodeDumper.h | 25 + clang/lib/AST/JSONNodeDumper.cpp | 128 +- clang/lib/AST/TextNodeDumper.cpp | 15 + .../test/AST/ByteCode/builtin-constant-p.cpp | 8 - clang/test/AST/ByteCode/complex.cpp | 2 +- clang/test/AST/ByteCode/const-eval.c | 3 - clang/test/AST/ByteCode/cxx23.cpp | 19 - clang/test/AST/ByteCode/placement-new.cpp | 8 - clang/test/AST/ByteCode/records.cpp | 2 +- .../test/AST/HLSL/ByteAddressBuffers-AST.hlsl | 104 +- clang/test/AST/HLSL/OutArgExpr.hlsl | 8 +- clang/test/AST/HLSL/RootSignatures-AST.hlsl | 10 +- .../test/AST/HLSL/StructuredBuffers-AST.hlsl | 318 +- clang/test/AST/HLSL/TypdefArrayParam.hlsl | 6 +- clang/test/AST/HLSL/TypedBuffers-AST.hlsl | 224 +- .../AST/HLSL/ast-dump-comment-cbuffer.hlsl | 169 +- ...d_resource_element_compatible_concept.hlsl | 22 +- ...d_resource_element_compatible_concept.hlsl | 12 +- clang/test/AST/HLSL/packoffset.hlsl | 354 +- clang/test/AST/HLSL/pch_hlsl_buffer.hlsl | 32 +- .../test/AST/HLSL/resource_binding_attr.hlsl | 221 +- clang/test/AST/alignas_maybe_odr_cleanup.cpp | 2 +- clang/test/AST/ast-dump-aarch64-sve-types.c | 30 +- clang/test/AST/ast-dump-arm-attr.c | 2 +- clang/test/AST/ast-dump-array.cpp | 64 +- clang/test/AST/ast-dump-atomic-options.hip | 281 +- clang/test/AST/ast-dump-attr-json.cpp | 1185 +- clang/test/AST/ast-dump-attr-type.cpp | 22 +- clang/test/AST/ast-dump-attr.cpp | 629 +- clang/test/AST/ast-dump-attr.m | 6 +- clang/test/AST/ast-dump-c-attr.c | 24 +- clang/test/AST/ast-dump-comment.cpp | 10 +- clang/test/AST/ast-dump-concepts.cpp | 18 +- clang/test/AST/ast-dump-constant-var.cu | 4 +- clang/test/AST/ast-dump-coroutine.cpp | 410 +- clang/test/AST/ast-dump-ctad-alias.cpp | 38 +- clang/test/AST/ast-dump-decl-json.c | 3643 +-- clang/test/AST/ast-dump-decl-json.m | 4360 ++-- clang/test/AST/ast-dump-decl-stmts.cpp | 8 +- clang/test/AST/ast-dump-decl.c | 6 +- clang/test/AST/ast-dump-decl.cpp | 953 +- clang/test/AST/ast-dump-decl.m | 10 +- clang/test/AST/ast-dump-decl.mm | 4 +- clang/test/AST/ast-dump-default-arg-json.cpp | 4593 ++-- clang/test/AST/ast-dump-default-init-json.cpp | 1929 +- clang/test/AST/ast-dump-expr-errors.cpp | 98 +- clang/test/AST/ast-dump-expr-json.c | 11737 ++++----- clang/test/AST/ast-dump-expr-json.cpp | 19588 ++++++++-------- clang/test/AST/ast-dump-expr-json.m | 10457 +++++---- clang/test/AST/ast-dump-expr.c | 6 +- clang/test/AST/ast-dump-expr.cpp | 20 +- clang/test/AST/ast-dump-file-line-json.c | 709 +- .../test/AST/ast-dump-for-range-lifetime.cpp | 2031 +- clang/test/AST/ast-dump-fpfeatures.cpp | 38 +- clang/test/AST/ast-dump-funcs-json.cpp | 2983 +-- clang/test/AST/ast-dump-funcs.cpp | 20 +- clang/test/AST/ast-dump-functionprototype.cpp | 12 +- clang/test/AST/ast-dump-if-json.cpp | 2468 +- clang/test/AST/ast-dump-invalid.cpp | 14 +- .../ast-dump-lambda-body-not-duplicated.cpp | 2 +- clang/test/AST/ast-dump-lambda.cpp | 548 +- clang/test/AST/ast-dump-lookups.cpp | 16 +- clang/test/AST/ast-dump-managed-var.cu | 8 +- clang/test/AST/ast-dump-msp430-attr.c | 2 +- clang/test/AST/ast-dump-openmp-atomic.c | 2 +- ...nmp-begin-declare-variant-varying-return.c | 88 +- ...ast-dump-openmp-begin-declare-variant_10.c | 28 +- ...ast-dump-openmp-begin-declare-variant_11.c | 68 +- ...ast-dump-openmp-begin-declare-variant_12.c | 62 +- ...ast-dump-openmp-begin-declare-variant_13.c | 6 +- .../ast-dump-openmp-begin-declare-variant_2.c | 8 +- .../ast-dump-openmp-begin-declare-variant_3.c | 8 +- .../ast-dump-openmp-begin-declare-variant_4.c | 2 +- .../ast-dump-openmp-begin-declare-variant_5.c | 12 +- .../ast-dump-openmp-begin-declare-variant_6.c | 49 +- .../ast-dump-openmp-begin-declare-variant_7.c | 4 +- .../ast-dump-openmp-begin-declare-variant_8.c | 8 +- .../ast-dump-openmp-begin-declare-variant_9.c | 32 +- ...dump-openmp-begin-declare-variant_addr_1.c | 8 +- ...enmp-begin-declare-variant_namespace_1.cpp | 8 +- ...dump-openmp-begin-declare-variant_nested.c | 10 +- ...openmp-begin-declare-variant_reference.cpp | 118 +- ...penmp-begin-declare-variant_template_1.cpp | 30 +- ...penmp-begin-declare-variant_template_2.cpp | 60 +- ...penmp-begin-declare-variant_template_3.cpp | 603 +- ...penmp-begin-declare-variant_template_4.cpp | 14 +- clang/test/AST/ast-dump-openmp-cancel.c | 4 +- .../AST/ast-dump-openmp-cancellation-point.c | 4 +- ...t-dump-openmp-declare-variant-extensions.c | 30 +- ...dump-openmp-distribute-parallel-for-simd.c | 588 +- .../ast-dump-openmp-distribute-parallel-for.c | 588 +- .../AST/ast-dump-openmp-distribute-simd.c | 412 +- clang/test/AST/ast-dump-openmp-distribute.c | 110 +- clang/test/AST/ast-dump-openmp-for-simd.c | 110 +- clang/test/AST/ast-dump-openmp-for.c | 326 +- clang/test/AST/ast-dump-openmp-ordered.c | 90 +- .../AST/ast-dump-openmp-parallel-for-simd.c | 432 +- clang/test/AST/ast-dump-openmp-parallel-for.c | 432 +- .../AST/ast-dump-openmp-parallel-sections.c | 4 +- clang/test/AST/ast-dump-openmp-parallel.c | 4 +- clang/test/AST/ast-dump-openmp-simd.c | 412 +- clang/test/AST/ast-dump-openmp-target-data.c | 2 +- .../AST/ast-dump-openmp-target-enter-data.c | 14 +- .../AST/ast-dump-openmp-target-exit-data.c | 14 +- ...ast-dump-openmp-target-parallel-for-simd.c | 1842 +- .../AST/ast-dump-openmp-target-parallel-for.c | 1842 +- .../AST/ast-dump-openmp-target-parallel.c | 68 +- clang/test/AST/ast-dump-openmp-target-simd.c | 922 +- ...arget-teams-distribute-parallel-for-simd.c | 5283 +++-- ...nmp-target-teams-distribute-parallel-for.c | 5283 +++-- ...dump-openmp-target-teams-distribute-simd.c | 1842 +- .../ast-dump-openmp-target-teams-distribute.c | 1842 +- clang/test/AST/ast-dump-openmp-target-teams.c | 88 +- .../test/AST/ast-dump-openmp-target-update.c | 14 +- clang/test/AST/ast-dump-openmp-target.c | 24 +- clang/test/AST/ast-dump-openmp-task.c | 12 +- .../test/AST/ast-dump-openmp-taskloop-simd.c | 532 +- clang/test/AST/ast-dump-openmp-taskloop.c | 532 +- ...penmp-teams-distribute-parallel-for-simd.c | 5663 +++-- ...ump-openmp-teams-distribute-parallel-for.c | 6125 +++-- .../ast-dump-openmp-teams-distribute-simd.c | 3165 ++- .../AST/ast-dump-openmp-teams-distribute.c | 3165 ++- clang/test/AST/ast-dump-openmp-teams.c | 70 +- .../AST/ast-dump-overloaded-operators.cpp | 44 +- .../test/AST/ast-dump-pack-indexing-crash.cpp | 10 +- clang/test/AST/ast-dump-ppc-types.c | 6 +- clang/test/AST/ast-dump-pragma-json.c | 1000 +- clang/test/AST/ast-dump-pragma-unroll.cpp | 8 +- .../ast-dump-record-definition-data-json.cpp | 11308 ++++----- clang/test/AST/ast-dump-records-json.cpp | 9391 ++++---- clang/test/AST/ast-dump-records.cpp | 2 +- clang/test/AST/ast-dump-recovery.c | 211 +- clang/test/AST/ast-dump-recovery.cpp | 64 +- clang/test/AST/ast-dump-riscv-attributes.cpp | 13 +- clang/test/AST/ast-dump-sme-attributes.cpp | 74 +- clang/test/AST/ast-dump-stmt-json.c | 11518 ++++----- clang/test/AST/ast-dump-stmt-json.cpp | 16158 +++++++------ clang/test/AST/ast-dump-stmt-json.m | 1650 +- clang/test/AST/ast-dump-stmt.c | 106 +- clang/test/AST/ast-dump-stmt.cpp | 46 +- clang/test/AST/ast-dump-stmt.m | 2 +- .../test/AST/ast-dump-template-decls-json.cpp | 6549 +++--- clang/test/AST/ast-dump-template-decls.cpp | 101 +- ...dump-template-json-win32-mangler-crash.cpp | 3764 +-- clang/test/AST/ast-dump-template-name.cpp | 16 +- clang/test/AST/ast-dump-templates.cpp | 16629 ++++++------- clang/test/AST/ast-dump-temporaries-json.cpp | 914 +- clang/test/AST/ast-dump-traits.cpp | 86 +- clang/test/AST/ast-dump-types-errors-json.cpp | 257 +- clang/test/AST/ast-dump-types-json.cpp | 1188 +- clang/test/AST/ast-dump-using-template.cpp | 18 +- clang/test/AST/ast-dump-using.cpp | 14 +- clang/test/AST/ast-dump-wasm-attr-export.c | 24 +- clang/test/AST/ast-dump-wasm-attr-import.c | 24 +- clang/test/AST/attr-lifetime-capture-by.cpp | 24 +- clang/test/AST/attr-swift_attr.m | 2 +- clang/test/AST/attr-target-version.c | 7 +- clang/test/AST/conditionally-trivial-smfs.cpp | 8 +- clang/test/AST/dump.cpp | 52 +- clang/test/AST/fixed_point.c | 336 +- clang/test/AST/float16.cpp | 406 +- clang/test/AST/ms-constexpr.cpp | 4 +- clang/test/AST/multistep-explicit-cast-json.c | 1324 +- .../test/AST/multistep-explicit-cast-json.cpp | 3318 +-- clang/test/AST/new-unknown-type.cpp | 2 +- clang/test/AST/nrvo.c | 4 +- clang/test/AST/pr43983.cpp | 2 +- ...agma-attribute-cxx-subject-match-rules.cpp | 80 +- ...ragma-attribute-objc-subject-match-rules.m | 12 +- .../pragma-multiple-attributes-declspec.cpp | 4 +- clang/test/AST/pragma-multiple-attributes.cpp | 8 +- clang/unittests/AST/ASTTraverserTest.cpp | 4 + 174 files changed, 109423 insertions(+), 91277 deletions(-) diff --git a/clang/include/clang/AST/ASTNodeTraverser.h b/clang/include/clang/AST/ASTNodeTraverser.h index 8ebabb2bde10d..b282f748a1426 100644 --- a/clang/include/clang/AST/ASTNodeTraverser.h +++ b/clang/include/clang/AST/ASTNodeTraverser.h @@ -11,6 +11,22 @@ // similar to RecursiveASTVisitor. // //===----------------------------------------------------------------------===// +// +// Modifications to this file by SEI staff are copyright Carnegie Mellon +// University and contributed under the Apache License v2.0 with LLVM +// Exceptions. +// +// SEI Contributions are made with funding sand support from the Department of +// Defense under Contract No. FA8702-15-D-0002 with Carnegie Mellon University +// for the operation of the Software Engineering Institute, a federally funded +// research and development center. +// +// The view, opinions, and/or findings contained in this material are those of +// the author(s) and should not be construed as an official Government position, +// policy, or decision, unless designated by other documentation. +// DM24-0194 +// +//===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_AST_ASTNODETRAVERSER_H #define LLVM_CLANG_AST_ASTNODETRAVERSER_H @@ -177,14 +193,34 @@ class ASTNodeTraverser if (!SQT.Quals.hasQualifiers()) return Visit(SQT.Ty); - getNodeDelegate().AddChild([=] { + // SEI: changed from default label to "qualTypeDetail" + getNodeDelegate().AddChild("qualTypeDetail", [this, T] { getNodeDelegate().Visit(T); Visit(T.split().Ty); }); + + // SEI function pointer support. this gets called whenever the three + // conditions are met: + // 1. the function pointer is not typedef'd + // 2. after Visit(VarDecl *) gets called + // 3. if VarDecl determines this is a function pointer + if (T->isFunctionPointerType()) { + // create as a child node to this type + getNodeDelegate().AddChild( + [=] { getNodeDelegate().Visit(T->getPointeeType()); }); + } + + // SEI: traverse PointerType information + if (T->isPointerType()) + Visit(T->getPointeeType()); } + // SEI: traverse ReturnType information + void VisitReturnType(QualType T) { getNodeDelegate().VisitReturnType(T); } + void Visit(const Type *T) { - getNodeDelegate().AddChild([=] { + // SEI: renamed this from default label + getNodeDelegate().AddChild("typeDetails", [this, T] { getNodeDelegate().Visit(T); if (!T) return; @@ -209,7 +245,8 @@ class ASTNodeTraverser } void Visit(const Attr *A) { - getNodeDelegate().AddChild([=] { + // SEI: renamed from default label + getNodeDelegate().AddChild("attrDetails", [this, A] { getNodeDelegate().Visit(A); ConstAttrVisitor::Visit(A); }); @@ -416,8 +453,20 @@ class ASTNodeTraverser Visit(T->getSizeExpr()); } void VisitVectorType(const VectorType *T) { Visit(T->getElementType()); } - void VisitFunctionType(const FunctionType *T) { Visit(T->getReturnType()); } + void VisitFunctionType(const FunctionType *T) { + + Visit(T->getReturnType()); + + // SEI: add functionDetails, incl. return type + getNodeDelegate().AddChild("functionDetails", [this, T] { + getNodeDelegate().VisitFunctionType(T); + getNodeDelegate().VisitReturnType(T->getReturnType()); + }); + } + void VisitFunctionProtoType(const FunctionProtoType *T) { + + // SEI: visit the function type. this will force the return type info too. VisitFunctionType(T); for (const QualType &PT : T->getParamTypes()) Visit(PT); @@ -585,6 +634,12 @@ class ASTNodeTraverser Visit(TSI->getTypeLoc()); if (D->hasInit()) Visit(D->getInit()); + + // SEI: if this is a function pointer, then we need to get the + // FunctionProtoType and then make add'l visits. if the FP is typedef'd, + // then this behavior occurs for us outside of Visit(VarDecl *) + //getNodeDelegate().Visit(D->getType(), true); + Visit(D->getType()); } void VisitDecompositionDecl(const DecompositionDecl *D) { diff --git a/clang/include/clang/AST/JSONNodeDumper.h b/clang/include/clang/AST/JSONNodeDumper.h index 570662b58ccf0..f20303f0509f0 100644 --- a/clang/include/clang/AST/JSONNodeDumper.h +++ b/clang/include/clang/AST/JSONNodeDumper.h @@ -10,6 +10,22 @@ // a JSON. // //===----------------------------------------------------------------------===// +// +// Modifications to this file by SEI staff are copyright Carnegie Mellon +// University and contributed under the Apache License v2.0 with LLVM +// Exceptions. +// +// SEI Contributions are made with funding sand support from the Department of +// Defense under Contract No. FA8702-15-D-0002 with Carnegie Mellon University +// for the operation of the Software Engineering Institute, a federally funded +// research and development center. +// +// The view, opinions, and/or findings contained in this material are those of +// the author(s) and should not be construed as an official Government position, +// policy, or decision, unless designated by other documentation. +// DM24-0194 +// +//===----------------------------------------------------------------------===// #ifndef LLVM_CLANG_AST_JSONNODEDUMPER_H #define LLVM_CLANG_AST_JSONNODEDUMPER_H @@ -26,6 +42,9 @@ #include "clang/AST/Type.h" #include "llvm/Support/JSON.h" +// SEI: added for caching addresses of certain visited nodes +#include + namespace clang { class APValue; @@ -111,8 +130,8 @@ class NodeStreamer { // Dumps AST nodes in JSON format. There is no implied stability for the // content or format of the dump between major releases of Clang, other than it // being valid JSON output. Further, there is no requirement that the -// information dumped is a complete representation of the AST, only that the -// information presented is correct. +// information dumped be a complete representation of the AST, only that the +// information presented be correct. class JSONNodeDumper : public ConstAttrVisitor, public comments::ConstCommentVisitor AddressCache; + using InnerAttrVisitor = ConstAttrVisitor; using InnerCommentVisitor = comments::ConstCommentVisitorgetCanonicalTypeInternal()); + return; + } + JOS.attribute("id", createPointerRepresentation(T)); if (!T) @@ -86,15 +99,50 @@ void JSONNodeDumper::Visit(const Type *T) { T->containsUnexpandedParameterPack()); attributeOnlyIfTrue("isImported", T->isFromAST()); InnerTypeVisitor::Visit(T); + // SEI + VisitQualTypeDetails(T->getCanonicalTypeInternal()); } void JSONNodeDumper::Visit(QualType T) { - JOS.attribute("id", createPointerRepresentation(T.getAsOpaquePtr())); - JOS.attribute("kind", "QualType"); - JOS.attribute("type", createQualType(T)); - JOS.attribute("qualifiers", T.split().Quals.getAsString()); + + // SEI: used AddChild to prevent qualType from being part added to a list + // JOS.attributeArray("qualTypes", [=] { + + // SEI: force qualType into its own block, otherwise multiple Visits + // create a bunch of siblings, which is invalid JSON + JOS.attributeBegin("qualType"); + JOS.objectBegin(); + + // SEI: cache visited addresses and add only its refId + // instead of the kind, type, quals, but leave the qual type details + // because those can differ among IDs + if (cacheAddress(T.getAsOpaquePtr())) { + JOS.attribute("refId", createPointerRepresentation(T.getAsOpaquePtr())); + } else { + JOS.attribute("id", createPointerRepresentation(T.getAsOpaquePtr())); + JOS.attribute("kind", "QualType"); + JOS.attribute("type", createQualType(T)); + JOS.attribute("qualifiers", T.split().Quals.getAsString()); + } + + // SEI: get add'l info required for redemption analysis + // the qual type details differ even among cached references + VisitQualTypeDetails(T); + + // SEI: if this is a pointer type, then recursively call ourselves + // until it's not + if (T->isPointerType()) + Visit(T->getPointeeType()); + + JOS.objectEnd(); + JOS.attributeEnd(); + //} ); } +// SEI: added this as a forwarding function so that the TextNodeDumper +// SEI: doesn't have this applied when coming from a VarDecl +void JSONNodeDumper::Visit(QualType T, bool isFromDecl) { Visit(T); } + void JSONNodeDumper::Visit(TypeLoc TL) { if (TL.isNull()) return; @@ -110,6 +158,64 @@ void JSONNodeDumper::Visit(TypeLoc TL) { [TL, this] { writeSourceRange(TL.getSourceRange()); }); } +void JSONNodeDumper::VisitQualTypeDetails(QualType T) { + // SEI: get more detailed info on type. this info is not transferrable + // with the refId, so this must be called on every type even if that type + // has been cached + JOS.attributeBegin("qualDetails"); + JOS.arrayBegin(); + + auto CT = T->getCanonicalTypeInternal(); + + if (CT->isStructureType()) + JOS.value("struct"); + + if (CT->isNullPtrType()) + JOS.value("null"); + if (CT->isUndeducedType()) + JOS.value("undeduced"); + + if (CT->isPointerType()) + JOS.value("ptr"); + if (CT->isVoidType()) + JOS.value("void"); + + if (CT->isSignedIntegerType()) + JOS.value("signed"); + if (CT->isUnsignedIntegerType()) + JOS.value("unsigned"); + if (CT->isIntegerType()) + JOS.value("integer"); + if (CT->isFloatingType()) + JOS.value("fpp"); + if (CT->isEnumeralType()) + JOS.value("enum"); + if (CT->isUnionType()) + JOS.value("union"); + if (CT->isFunctionPointerType()) + JOS.value("func_ptr"); + if (CT->isTypedefNameType()) + JOS.value("type_def"); + if (CT->isArrayType()) + JOS.value("array"); + + JOS.arrayEnd(); + JOS.attributeEnd(); +} + +// SEI: capture the return info in a nested JSON block +void JSONNodeDumper::VisitReturnType(QualType T) { + // using this function allows us to easily wrap just the returnType + // section into its own JSON block. if we do this in ASTNodeTraverser, + // then the TextNodeDumper works as expected but the JSONNodeDumper + // rolls all siblings into the returnType node with those siblings as child + // nodes + + JOS.attributeObject("returnTypeDetail", [=] { Visit(T); }); + + // Visit(T); +} + void JSONNodeDumper::Visit(const Decl *D) { JOS.attribute("id", createPointerRepresentation(D)); @@ -174,6 +280,14 @@ void JSONNodeDumper::Visit(const TemplateArgument &TA, SourceRange R, void JSONNodeDumper::Visit(const CXXCtorInitializer *Init) { JOS.attribute("kind", "CXXCtorInitializer"); + + // SEI: added id for + JOS.attribute("id", createPointerRepresentation(Init)); + + // SEI: added range for CXXCtorInitializers + JOS.attributeObject( + "range", [Init, this] { writeSourceRange(Init->getSourceRange()); }); + if (Init->isAnyMemberInitializer()) JOS.attribute("anyInit", createBareDeclRef(Init->getAnyMember())); else if (Init->isBaseInitializer()) @@ -957,6 +1071,10 @@ void JSONNodeDumper::VisitFieldDecl(const FieldDecl *FD) { attributeOnlyIfTrue("modulePrivate", FD->isModulePrivate()); attributeOnlyIfTrue("isBitfield", FD->isBitField()); attributeOnlyIfTrue("hasInClassInitializer", FD->hasInClassInitializer()); + + // SEI: had to add this in b/c FieldDecls do not seem to call + // Visit(QualType) + Visit(FD->getType()); } void JSONNodeDumper::VisitFunctionDecl(const FunctionDecl *FD) { @@ -1350,6 +1468,8 @@ void JSONNodeDumper::VisitDeclRefExpr(const DeclRefExpr *DRE) { case NOUR_Discarded: JOS.attribute("nonOdrUseReason", "discarded"); break; } attributeOnlyIfTrue("isImmediateEscalating", DRE->isImmediateEscalating()); + // SEI: this doesn't call VisitNamedDecl, so we force it + Visit(DRE->getType()); } void JSONNodeDumper::VisitSYCLUniqueStableNameExpr( diff --git a/clang/lib/AST/TextNodeDumper.cpp b/clang/lib/AST/TextNodeDumper.cpp index 6b524cfcd2d71..d295faa7f3442 100644 --- a/clang/lib/AST/TextNodeDumper.cpp +++ b/clang/lib/AST/TextNodeDumper.cpp @@ -242,6 +242,21 @@ void TextNodeDumper::Visit(QualType T) { OS << " " << T.split().Quals.getAsString(); } +// SEI: ignore this from being called whenever it's from a VarDecl +// SEI: so we don't interfere with the normal text output +void TextNodeDumper::Visit(QualType T, bool isFromDecl) { + if (!isFromDecl) + Visit(T); +} + +void TextNodeDumper::VisitReturnType(QualType T) { + OS << "ReturnType"; + dumpPointer(T.getAsOpaquePtr()); + OS << " "; + dumpBareType(T, false); + OS << " " << T.split().Quals.getAsString(); +} + void TextNodeDumper::Visit(TypeLoc TL) { if (!TL) { ColorScope Color(OS, ShowColors, NullColor); diff --git a/clang/test/AST/ByteCode/builtin-constant-p.cpp b/clang/test/AST/ByteCode/builtin-constant-p.cpp index 315a907949c34..9f5521590833d 100644 --- a/clang/test/AST/ByteCode/builtin-constant-p.cpp +++ b/clang/test/AST/ByteCode/builtin-constant-p.cpp @@ -140,11 +140,3 @@ void test17(void) { F("string literal" + 1); // both-warning {{adding}} \ // both-note {{use array indexing}} } - -/// FIXME -static void foo(int i) __attribute__((__diagnose_if__(!__builtin_constant_p(i), "not constant", "error"))) // expected-note {{from}} -{ -} -static void bar(int i) { - foo(15); // expected-error {{not constant}} -} diff --git a/clang/test/AST/ByteCode/complex.cpp b/clang/test/AST/ByteCode/complex.cpp index be10b3cfa53da..10ca82fbdc485 100644 --- a/clang/test/AST/ByteCode/complex.cpp +++ b/clang/test/AST/ByteCode/complex.cpp @@ -409,4 +409,4 @@ namespace ComplexConstexpr { static_assert(__real test6 == 5, ""); static_assert(__imag test6 == 6, ""); static_assert(&__imag test6 == &__real test6 + 1, ""); -} +} \ No newline at end of file diff --git a/clang/test/AST/ByteCode/const-eval.c b/clang/test/AST/ByteCode/const-eval.c index 3e228226ac8c1..eab14c08ec809 100644 --- a/clang/test/AST/ByteCode/const-eval.c +++ b/clang/test/AST/ByteCode/const-eval.c @@ -180,9 +180,6 @@ typedef __INTPTR_TYPE__ intptr_t; const intptr_t A = (intptr_t)(((int*) 0) + 1); const intptr_t B = (intptr_t)(((char*)0) + 3); _Static_assert(A > B, ""); -int * GH149500_p = &(*(int *)0x400); -static const void *GH149500_q = &(*(const struct sysrq_key_op *)0); - #else #error :( #endif diff --git a/clang/test/AST/ByteCode/cxx23.cpp b/clang/test/AST/ByteCode/cxx23.cpp index 45dd4f528aefb..2856b872d44ab 100644 --- a/clang/test/AST/ByteCode/cxx23.cpp +++ b/clang/test/AST/ByteCode/cxx23.cpp @@ -369,26 +369,7 @@ namespace NestedUnions { return true; } static_assert(test_nested()); -} - -namespace UnionMemberCallDiags { - struct A { int n; }; - struct B { A a; }; - constexpr A a = (A() = B().a); - union C { - int n; - A a; - }; - constexpr bool g() { - C c = {.n = 1}; - c.a.operator=(B{2}.a); // all-note {{member call on member 'a' of union with active member 'n' is not allowed in a constant expression}} - return c.a.n == 2; - } - static_assert(g()); // all-error {{not an integral constant expression}} \ - // all-note {{in call to}} } - - #endif diff --git a/clang/test/AST/ByteCode/placement-new.cpp b/clang/test/AST/ByteCode/placement-new.cpp index b587cd6eaf89c..670def2d5870e 100644 --- a/clang/test/AST/ByteCode/placement-new.cpp +++ b/clang/test/AST/ByteCode/placement-new.cpp @@ -486,11 +486,3 @@ namespace bitcast { } static_assert(foo() == 0); } - -constexpr int modify_const_variable() { - const int a = 10; - new ((int *)&a) int(12); // both-note {{modification of object of const-qualified type 'const int' is not allowed in a constant expression}} - return a; -} -static_assert(modify_const_variable()); // both-error {{not an integral constant expression}} \ - // both-note {{in call to}} diff --git a/clang/test/AST/ByteCode/records.cpp b/clang/test/AST/ByteCode/records.cpp index 5ca3e2d12e2df..8925f2a2d0b67 100644 --- a/clang/test/AST/ByteCode/records.cpp +++ b/clang/test/AST/ByteCode/records.cpp @@ -1839,4 +1839,4 @@ namespace DiamondDowncast { constexpr Top &top1 = (Middle1&)bottom; constexpr Middle2 &fail = (Middle2&)top1; // both-error {{must be initialized by a constant expression}} \ // both-note {{cannot cast object of dynamic type 'const Bottom' to type 'Middle2'}} -} +} \ No newline at end of file diff --git a/clang/test/AST/HLSL/ByteAddressBuffers-AST.hlsl b/clang/test/AST/HLSL/ByteAddressBuffers-AST.hlsl index f85194496942b..74fcfa6ac6129 100644 --- a/clang/test/AST/HLSL/ByteAddressBuffers-AST.hlsl +++ b/clang/test/AST/HLSL/ByteAddressBuffers-AST.hlsl @@ -23,7 +23,7 @@ // RUN: -check-prefixes=CHECK,CHECK-UAV,CHECK-NOSUBSCRIPT %s // EMPTY: CXXRecordDecl {{.*}} implicit class [[RESOURCE]] -// EMPTY-NEXT: FinalAttr {{.*}} Implicit final +// EMPTY: FinalAttr {{.*}} Implicit final // There should be no more occurrences of RESOURCE // EMPTY-NOT: {{[^[:alnum:]]}}[[RESOURCE]] @@ -36,7 +36,7 @@ RESOURCE Buffer; // CHECK: CXXRecordDecl {{.*}} implicit referenced class [[RESOURCE]] definition // CHECK: FinalAttr {{.*}} Implicit final -// CHECK-NEXT: FieldDecl {{.*}} implicit __handle '__hlsl_resource_t +// CHECK: FieldDecl {{.*}} implicit __handle '__hlsl_resource_t // CHECK-SRV-SAME{LITERAL}: [[hlsl::resource_class(SRV)]] // CHECK-UAV-SAME{LITERAL}: [[hlsl::resource_class(UAV)]] // CHECK-SAME{LITERAL}: [[hlsl::raw_buffer]] @@ -45,64 +45,64 @@ RESOURCE Buffer; // Default constructor // CHECK: CXXConstructorDecl {{.*}} [[RESOURCE]] 'void ()' inline -// CHECK-NEXT: CompoundStmt -// CHECK-NEXT: BinaryOperator {{.*}} '=' -// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle -// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]' lvalue implicit this -// CHECK-NEXT: CallExpr {{.*}} '__hlsl_resource_t -// CHECK-NEXT: ImplicitCastExpr {{.*}} -// CHECK-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_uninitializedhandle' -// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle -// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]' lvalue implicit this -// CHECK-NEXT: AlwaysInlineAttr +// CHECK: CompoundStmt +// CHECK: BinaryOperator {{.*}} '=' +// CHECK: MemberExpr {{.*}} lvalue .__handle +// CHECK: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]' lvalue implicit this +// CHECK: CallExpr {{.*}} '__hlsl_resource_t +// CHECK: ImplicitCastExpr {{.*}} +// CHECK: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_uninitializedhandle' +// CHECK: MemberExpr {{.*}} lvalue .__handle +// CHECK: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]' lvalue implicit this +// CHECK: AlwaysInlineAttr // Constructor from binding // CHECK: CXXConstructorDecl {{.*}} [[RESOURCE]] 'void (unsigned int, unsigned int, int, unsigned int, const char *)' inline -// CHECK-NEXT: ParmVarDecl {{.*}} registerNo 'unsigned int' -// CHECK-NEXT: ParmVarDecl {{.*}} spaceNo 'unsigned int' -// CHECK-NEXT: ParmVarDecl {{.*}} range 'int' -// CHECK-NEXT: ParmVarDecl {{.*}} index 'unsigned int' -// CHECK-NEXT: ParmVarDecl {{.*}} name 'const char *' -// CHECK-NEXT: CompoundStmt {{.*}} -// CHECK-NEXT: BinaryOperator {{.*}} '=' -// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle -// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]' lvalue implicit this -// CHECK-NEXT: CallExpr {{.*}} '__hlsl_resource_t -// CHECK-NEXT: ImplicitCastExpr {{.*}} -// CHECK-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_handlefrombinding' -// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle -// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]' lvalue implicit this -// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'registerNo' 'unsigned int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'spaceNo' 'unsigned int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'int' ParmVar {{.*}} 'range' 'int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'index' 'unsigned int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'const char *' ParmVar {{.*}} 'name' 'const char *' -// CHECK-NEXT: AlwaysInlineAttr +// CHECK: ParmVarDecl {{.*}} registerNo 'unsigned int' +// CHECK: ParmVarDecl {{.*}} spaceNo 'unsigned int' +// CHECK: ParmVarDecl {{.*}} range 'int' +// CHECK: ParmVarDecl {{.*}} index 'unsigned int' +// CHECK: ParmVarDecl {{.*}} name 'const char *' +// CHECK: CompoundStmt {{.*}} +// CHECK: BinaryOperator {{.*}} '=' +// CHECK: MemberExpr {{.*}} lvalue .__handle +// CHECK: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]' lvalue implicit this +// CHECK: CallExpr {{.*}} '__hlsl_resource_t +// CHECK: ImplicitCastExpr {{.*}} +// CHECK: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_handlefrombinding' +// CHECK: MemberExpr {{.*}} lvalue .__handle +// CHECK: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]' lvalue implicit this +// CHECK: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'registerNo' 'unsigned int' +// CHECK: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'spaceNo' 'unsigned int' +// CHECK: DeclRefExpr {{.*}} 'int' ParmVar {{.*}} 'range' 'int' +// CHECK: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'index' 'unsigned int' +// CHECK: DeclRefExpr {{.*}} 'const char *' ParmVar {{.*}} 'name' 'const char *' +// CHECK: AlwaysInlineAttr // Constructor from implicit binding // CHECK: CXXConstructorDecl {{.*}} [[RESOURCE]] 'void (unsigned int, int, unsigned int, unsigned int, const char *)' inline -// CHECK-NEXT: ParmVarDecl {{.*}} spaceNo 'unsigned int' -// CHECK-NEXT: ParmVarDecl {{.*}} range 'int' -// CHECK-NEXT: ParmVarDecl {{.*}} index 'unsigned int' -// CHECK-NEXT: ParmVarDecl {{.*}} orderId 'unsigned int' -// CHECK-NEXT: ParmVarDecl {{.*}} name 'const char *' -// CHECK-NEXT: CompoundStmt {{.*}} -// CHECK-NEXT: BinaryOperator {{.*}} '=' -// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle -// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]' lvalue implicit this -// CHECK-NEXT: CallExpr {{.*}} '__hlsl_resource_t -// CHECK-NEXT: ImplicitCastExpr {{.*}} -// CHECK-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_handlefromimplicitbinding' -// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle -// CHECK-NEXT: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]' lvalue implicit this -// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'spaceNo' 'unsigned int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'int' ParmVar {{.*}} 'range' 'int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'index' 'unsigned int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'orderId' 'unsigned int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'const char *' ParmVar {{.*}} 'name' 'const char *' -// CHECK-NEXT: AlwaysInlineAttr +// CHECK: ParmVarDecl {{.*}} spaceNo 'unsigned int' +// CHECK: ParmVarDecl {{.*}} range 'int' +// CHECK: ParmVarDecl {{.*}} index 'unsigned int' +// CHECK: ParmVarDecl {{.*}} orderId 'unsigned int' +// CHECK: ParmVarDecl {{.*}} name 'const char *' +// CHECK: CompoundStmt {{.*}} +// CHECK: BinaryOperator {{.*}} '=' +// CHECK: MemberExpr {{.*}} lvalue .__handle +// CHECK: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]' lvalue implicit this +// CHECK: CallExpr {{.*}} '__hlsl_resource_t +// CHECK: ImplicitCastExpr {{.*}} +// CHECK: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_handlefromimplicitbinding' +// CHECK: MemberExpr {{.*}} lvalue .__handle +// CHECK: CXXThisExpr {{.*}} 'hlsl::[[RESOURCE]]' lvalue implicit this +// CHECK: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'spaceNo' 'unsigned int' +// CHECK: DeclRefExpr {{.*}} 'int' ParmVar {{.*}} 'range' 'int' +// CHECK: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'index' 'unsigned int' +// CHECK: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'orderId' 'unsigned int' +// CHECK: DeclRefExpr {{.*}} 'const char *' ParmVar {{.*}} 'name' 'const char *' +// CHECK: AlwaysInlineAttr // CHECK-NOSUBSCRIPT-NOT: CXXMethodDecl {{.*}} operator[] 'const element_type &(unsigned int) const' // CHECK-NOSUBSCRIPT-NOT: CXXMethodDecl {{.*}} operator[] 'element_type &(unsigned int)' diff --git a/clang/test/AST/HLSL/OutArgExpr.hlsl b/clang/test/AST/HLSL/OutArgExpr.hlsl index 04ce635e721bf..8b2889f5a9b90 100644 --- a/clang/test/AST/HLSL/OutArgExpr.hlsl +++ b/clang/test/AST/HLSL/OutArgExpr.hlsl @@ -12,8 +12,8 @@ RWBuffer Buf; // CHECK: void trunc_Param(inout int &__restrict X) { // AST: FunctionDecl {{.*}} used trunc_Param 'void (inout int)' -// AST-NEXT: ParmVarDecl {{.*}} X 'int &__restrict' -// AST-NEXT: HLSLParamModifierAttr {{.*}} inout +// AST: ParmVarDecl {{.*}} X 'int &__restrict' +// AST: -attrDetails: HLSLParamModifierAttr {{.*}} inout void trunc_Param(inout int X) {} @@ -22,7 +22,7 @@ void trunc_Param(inout int X) {} // AST: FunctionDecl {{.*}} zero 'void (out int)' // AST-NEXT: ParmVarDecl {{.*}} used Z 'int &__restrict' -// AST-NEXT: HLSLParamModifierAttr {{.*}} out +// AST: HLSLParamModifierAttr {{.*}} out void zero(out int Z) { Z = 0; } // AST-LABEL: FunctionDecl {{.*}} imported used fn 'void (uint)' @@ -82,4 +82,4 @@ void main(uint GI : SV_GroupIndex) { zero(I); fn(GI); } -#endif // TEST_HLSL +#endif // TEST_HLSL \ No newline at end of file diff --git a/clang/test/AST/HLSL/RootSignatures-AST.hlsl b/clang/test/AST/HLSL/RootSignatures-AST.hlsl index df06165f1f1f9..84eecec2bed9c 100644 --- a/clang/test/AST/HLSL/RootSignatures-AST.hlsl +++ b/clang/test/AST/HLSL/RootSignatures-AST.hlsl @@ -75,14 +75,14 @@ // CHECK-SAME: borderColor = OpaqueWhite, minLOD = 0.000000e+00, maxLOD = 3.402823e+38, space = 0, visibility = All // CHECK-SAME: )} -// CHECK: -RootSignatureAttr 0x{{.*}} {{.*}} [[SAMPLE_RS_DECL]] +// CHECK: -attrDetails: RootSignatureAttr 0x{{.*}} {{.*}} [[SAMPLE_RS_DECL]] [RootSignature(SampleRS)] void rs_main() {} // Ensure that if multiple root signatures are specified at different entry // points that we point to the correct root signature -// CHECK: -RootSignatureAttr 0x{{.*}} {{.*}} [[SAMPLE_RS_DECL]] +// CHECK: -attrDetails: RootSignatureAttr 0x{{.*}} {{.*}} [[SAMPLE_RS_DECL]] [RootSignature(SampleRS)] void same_rs_main() {} @@ -107,7 +107,7 @@ void same_rs_main() {} "addressU = TEXTURE_ADDRESS_CLAMP, " \ "filter = FILTER_MIN_MAG_MIP_LINEAR )" -// CHECK: -RootSignatureAttr 0x{{.*}} {{.*}} [[SAMPLE_RS_DECL]] +// CHECK: -attrDetails: RootSignatureAttr 0x{{.*}} {{.*}} [[SAMPLE_RS_DECL]] [RootSignature(SampleSameRS)] void same_rs_string_main() {} @@ -128,6 +128,6 @@ void same_rs_string_main() {} // CHECK-SAME: DescriptorTable(numClauses = 1, visibility = All) // CHECK-SAME: } -// CHECK: -RootSignatureAttr 0x{{.*}} {{.*}} [[DIFF_RS_DECL]] +// CHECK: -attrDetails: RootSignatureAttr 0x{{.*}} {{.*}} [[DIFF_RS_DECL]] [RootSignature(SampleDifferentRS)] -void different_rs_string_main() {} +void different_rs_string_main() {} \ No newline at end of file diff --git a/clang/test/AST/HLSL/StructuredBuffers-AST.hlsl b/clang/test/AST/HLSL/StructuredBuffers-AST.hlsl index 1c8b9c10f5a98..1872965552d62 100644 --- a/clang/test/AST/HLSL/StructuredBuffers-AST.hlsl +++ b/clang/test/AST/HLSL/StructuredBuffers-AST.hlsl @@ -49,17 +49,17 @@ // instantiated specialization. // EMPTY: ClassTemplateDecl {{.*}} implicit [[RESOURCE]] -// EMPTY-NEXT: TemplateTypeParmDecl {{.*}} typename depth 0 index 0 element_type -// EMPTY-NEXT: ConceptSpecializationExpr {{.*}} 'bool' Concept {{.*}} '__is_structured_resource_element_compatible' -// EMPTY-NEXT: ImplicitConceptSpecializationDecl -// EMPTY-NEXT: TemplateArgument type 'type-parameter-0-0' -// EMPTY-NEXT: TemplateTypeParmType {{.*}} 'type-parameter-0-0' dependent depth 0 index 0 -// EMPTY-NEXT: TemplateTypeParm {{.*}} depth 0 index 0 -// EMPTY-NEXT: TemplateArgument type 'element_type':'type-parameter-0-0' -// EMPTY-NEXT: TemplateTypeParmType {{.*}} 'element_type' dependent depth 0 index 0 -// EMPTY-NEXT: TemplateTypeParm {{.*}} 'element_type' -// EMPTY-NEXT: CXXRecordDecl {{.*}} implicit class [[RESOURCE]] -// EMPTY-NEXT: FinalAttr {{.*}} Implicit final +// EMPTY: TemplateTypeParmDecl {{.*}} typename depth 0 index 0 element_type +// EMPTY: ConceptSpecializationExpr {{.*}} 'bool' Concept {{.*}} '__is_structured_resource_element_compatible' +// EMPTY: ImplicitConceptSpecializationDecl +// EMPTY: TemplateArgument type 'type-parameter-0-0' +// EMPTY: TemplateTypeParmType {{.*}} 'type-parameter-0-0' dependent depth 0 index 0 +// EMPTY: TemplateTypeParm {{.*}} depth 0 index 0 +// EMPTY: TemplateArgument type 'element_type':'type-parameter-0-0' +// EMPTY: TemplateTypeParmType {{.*}} 'element_type' dependent depth 0 index 0 +// EMPTY: TemplateTypeParm {{.*}} 'element_type' +// EMPTY: CXXRecordDecl {{.*}} implicit class [[RESOURCE]] +// EMPTY: FinalAttr {{.*}} Implicit final // There should be no more occurrences of [[RESOURCE]] // EMPTY-NOT: {{[^[:alnum:]]}}[[RESOURCE]] @@ -71,19 +71,19 @@ RESOURCE Buffer; #endif // CHECK: ClassTemplateDecl {{.*}} implicit [[RESOURCE]] -// CHECK-NEXT: TemplateTypeParmDecl {{.*}} typename depth 0 index 0 element_type -// CHECK-NEXT: ConceptSpecializationExpr {{.*}} 'bool' Concept {{.*}} '__is_structured_resource_element_compatible' -// CHECK-NEXT: ImplicitConceptSpecializationDecl {{.*}} -// CHECK-NEXT: TemplateArgument type 'type-parameter-0-0' -// CHECK-NEXT: TemplateTypeParmType {{.*}} 'type-parameter-0-0' dependent depth 0 index 0 -// CHECK-NEXT: TemplateTypeParm {{.*}} depth 0 index 0 -// CHECK-NEXT: TemplateArgument type 'element_type':'type-parameter-0-0' -// CHECK-NEXT: TemplateTypeParmType {{.*}} 'element_type' dependent depth 0 index 0 -// CHECK-NEXT: TemplateTypeParm {{.*}} 'element_type' -// CHECK-NEXT: CXXRecordDecl {{.*}} implicit class [[RESOURCE]] definition +// CHECK: TemplateTypeParmDecl {{.*}} typename depth 0 index 0 element_type +// CHECK: ConceptSpecializationExpr {{.*}} 'bool' Concept {{.*}} '__is_structured_resource_element_compatible' +// CHECK: ImplicitConceptSpecializationDecl {{.*}} +// CHECK: TemplateArgument type 'type-parameter-0-0' +// CHECK: TemplateTypeParmType {{.*}} 'type-parameter-0-0' dependent depth 0 index 0 +// CHECK: TemplateTypeParm {{.*}} depth 0 index 0 +// CHECK: TemplateArgument type 'element_type':'type-parameter-0-0' +// CHECK: TemplateTypeParmType {{.*}} 'element_type' dependent depth 0 index 0 +// CHECK: TemplateTypeParm {{.*}} 'element_type' +// CHECK: CXXRecordDecl {{.*}} implicit class [[RESOURCE]] definition // CHECK: FinalAttr {{.*}} Implicit final -// CHECK-NEXT: FieldDecl {{.*}} implicit __handle '__hlsl_resource_t +// CHECK: FieldDecl {{.*}} implicit __handle '__hlsl_resource_t // CHECK-SRV-SAME{LITERAL}: [[hlsl::resource_class(SRV)]] // CHECK-UAV-SAME{LITERAL}: [[hlsl::resource_class(UAV)]] // CHECK-SAME{LITERAL}: [[hlsl::raw_buffer]] @@ -92,100 +92,100 @@ RESOURCE Buffer; // Default constructor // CHECK: CXXConstructorDecl {{.*}} [[RESOURCE]] 'void ()' inline -// CHECK-NEXT: CompoundStmt -// CHECK-NEXT: BinaryOperator {{.*}} '=' -// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle -// CHECK-NEXT: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this -// CHECK-NEXT: CallExpr {{.*}} '__hlsl_resource_t -// CHECK-NEXT: ImplicitCastExpr {{.*}} -// CHECK-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_uninitializedhandle' -// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle -// CHECK-NEXT: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this -// CHECK-NEXT: AlwaysInlineAttr +// CHECK: CompoundStmt +// CHECK: BinaryOperator {{.*}} '=' +// CHECK: MemberExpr {{.*}} lvalue .__handle +// CHECK: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this +// CHECK: CallExpr {{.*}} '__hlsl_resource_t +// CHECK: ImplicitCastExpr {{.*}} +// CHECK: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_uninitializedhandle' +// CHECK: MemberExpr {{.*}} lvalue .__handle +// CHECK: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this +// CHECK: AlwaysInlineAttr // Constructor from binding // CHECK: CXXConstructorDecl {{.*}} [[RESOURCE]] 'void (unsigned int, unsigned int, int, unsigned int, const char *)' inline -// CHECK-NEXT: ParmVarDecl {{.*}} registerNo 'unsigned int' -// CHECK-NEXT: ParmVarDecl {{.*}} spaceNo 'unsigned int' -// CHECK-NEXT: ParmVarDecl {{.*}} range 'int' -// CHECK-NEXT: ParmVarDecl {{.*}} index 'unsigned int' -// CHECK-NEXT: ParmVarDecl {{.*}} name 'const char *' -// CHECK-NEXT: CompoundStmt {{.*}} -// CHECK-NEXT: BinaryOperator {{.*}} '=' -// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle -// CHECK-NEXT: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this -// CHECK-NEXT: CallExpr {{.*}} '__hlsl_resource_t -// CHECK-NEXT: ImplicitCastExpr {{.*}} -// CHECK-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_handlefrombinding' -// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle -// CHECK-NEXT: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this -// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'registerNo' 'unsigned int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'spaceNo' 'unsigned int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'int' ParmVar {{.*}} 'range' 'int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'index' 'unsigned int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'const char *' ParmVar {{.*}} 'name' 'const char *' -// CHECK-NEXT: AlwaysInlineAttr +// CHECK: ParmVarDecl {{.*}} registerNo 'unsigned int' +// CHECK: ParmVarDecl {{.*}} spaceNo 'unsigned int' +// CHECK: ParmVarDecl {{.*}} range 'int' +// CHECK: ParmVarDecl {{.*}} index 'unsigned int' +// CHECK: ParmVarDecl {{.*}} name 'const char *' +// CHECK: CompoundStmt {{.*}} +// CHECK: BinaryOperator {{.*}} '=' +// CHECK: MemberExpr {{.*}} lvalue .__handle +// CHECK: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this +// CHECK: CallExpr {{.*}} '__hlsl_resource_t +// CHECK: ImplicitCastExpr {{.*}} +// CHECK: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_handlefrombinding' +// CHECK: MemberExpr {{.*}} lvalue .__handle +// CHECK: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this +// CHECK: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'registerNo' 'unsigned int' +// CHECK: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'spaceNo' 'unsigned int' +// CHECK: DeclRefExpr {{.*}} 'int' ParmVar {{.*}} 'range' 'int' +// CHECK: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'index' 'unsigned int' +// CHECK: DeclRefExpr {{.*}} 'const char *' ParmVar {{.*}} 'name' 'const char *' +// CHECK: AlwaysInlineAttr // Constructor from implicit binding // CHECK: CXXConstructorDecl {{.*}} [[RESOURCE]] 'void (unsigned int, int, unsigned int, unsigned int, const char *)' inline -// CHECK-NEXT: ParmVarDecl {{.*}} spaceNo 'unsigned int' -// CHECK-NEXT: ParmVarDecl {{.*}} range 'int' -// CHECK-NEXT: ParmVarDecl {{.*}} index 'unsigned int' -// CHECK-NEXT: ParmVarDecl {{.*}} orderId 'unsigned int' -// CHECK-NEXT: ParmVarDecl {{.*}} name 'const char *' -// CHECK-NEXT: CompoundStmt {{.*}} -// CHECK-NEXT: BinaryOperator {{.*}} '=' -// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle -// CHECK-NEXT: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this -// CHECK-NEXT: CallExpr {{.*}} '__hlsl_resource_t -// CHECK-NEXT: ImplicitCastExpr {{.*}} -// CHECK-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_handlefromimplicitbinding' -// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle -// CHECK-NEXT: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this -// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'spaceNo' 'unsigned int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'int' ParmVar {{.*}} 'range' 'int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'index' 'unsigned int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'orderId' 'unsigned int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'const char *' ParmVar {{.*}} 'name' 'const char *' -// CHECK-NEXT: AlwaysInlineAttr +// CHECK: ParmVarDecl {{.*}} spaceNo 'unsigned int' +// CHECK: ParmVarDecl {{.*}} range 'int' +// CHECK: ParmVarDecl {{.*}} index 'unsigned int' +// CHECK: ParmVarDecl {{.*}} orderId 'unsigned int' +// CHECK: ParmVarDecl {{.*}} name 'const char *' +// CHECK: CompoundStmt {{.*}} +// CHECK: BinaryOperator {{.*}} '=' +// CHECK: MemberExpr {{.*}} lvalue .__handle +// CHECK: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this +// CHECK: CallExpr {{.*}} '__hlsl_resource_t +// CHECK: ImplicitCastExpr {{.*}} +// CHECK: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_handlefromimplicitbinding' +// CHECK: MemberExpr {{.*}} lvalue .__handle +// CHECK: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this +// CHECK: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'spaceNo' 'unsigned int' +// CHECK: DeclRefExpr {{.*}} 'int' ParmVar {{.*}} 'range' 'int' +// CHECK: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'index' 'unsigned int' +// CHECK: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'orderId' 'unsigned int' +// CHECK: DeclRefExpr {{.*}} 'const char *' ParmVar {{.*}} 'name' 'const char *' +// CHECK: AlwaysInlineAttr // Subscript operators // CHECK-SUBSCRIPT: CXXMethodDecl {{.*}} operator[] 'const hlsl_device element_type &(unsigned int) const' -// CHECK-SUBSCRIPT-NEXT: ParmVarDecl {{.*}} Index 'unsigned int' -// CHECK-SUBSCRIPT-NEXT: CompoundStmt -// CHECK-SUBSCRIPT-NEXT: ReturnStmt -// CHECK-SUBSCRIPT-NEXT: UnaryOperator {{.*}} 'hlsl_device element_type' prefix '*' cannot overflow -// CHECK-SUBSCRIPT-NEXT: CallExpr {{.*}} 'hlsl_device element_type *' -// CHECK-SUBSCRIPT-NEXT: ImplicitCastExpr {{.*}} -// CHECK-SUBSCRIPT-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_getpointer' 'void (...) noexcept' -// CHECK-SUBSCRIPT-NEXT: MemberExpr {{.*}} '__hlsl_resource_t +// CHECK-SUBSCRIPT: ParmVarDecl {{.*}} Index 'unsigned int' +// CHECK-SUBSCRIPT: CompoundStmt +// CHECK-SUBSCRIPT: ReturnStmt +// CHECK-SUBSCRIPT: UnaryOperator {{.*}} 'hlsl_device element_type' prefix '*' cannot overflow +// CHECK-SUBSCRIPT: CallExpr {{.*}} 'hlsl_device element_type *' +// CHECK-SUBSCRIPT: ImplicitCastExpr {{.*}} +// CHECK-SUBSCRIPT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_getpointer' 'void (...) noexcept' +// CHECK-SUBSCRIPT: MemberExpr {{.*}} '__hlsl_resource_t // CHECK-SUBSCRIPT-SAME{LITERAL}: [[hlsl::resource_class( // CHECK-SUBSCRIPT-SAME{LITERAL}: [[hlsl::raw_buffer]] // CHECK-SUBSCRIPT-SAME{LITERAL}: [[hlsl::contained_type(element_type)]] // CHECK-SUBSCRIPT-SAME: ' lvalue .__handle {{.*}} -// CHECK-SUBSCRIPT-NEXT: CXXThisExpr {{.*}} 'const [[RESOURCE]]' lvalue implicit this -// CHECK-SUBSCRIPT-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'Index' 'unsigned int' -// CHECK-SUBSCRIPT-NEXT: AlwaysInlineAttr {{.*}} Implicit always_inline +// CHECK-SUBSCRIPT: CXXThisExpr {{.*}} 'const [[RESOURCE]]' lvalue implicit this +// CHECK-SUBSCRIPT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'Index' 'unsigned int' +// CHECK-SUBSCRIPT: AlwaysInlineAttr {{.*}} Implicit always_inline -// CHECK-SUBSCRIPT-UAV-NEXT: CXXMethodDecl {{.*}} operator[] 'hlsl_device element_type &(unsigned int)' -// CHECK-SUBSCRIPT-UAV-NEXT: ParmVarDecl {{.*}} Index 'unsigned int' -// CHECK-SUBSCRIPT-UAV-NEXT: CompoundStmt -// CHECK-SUBSCRIPT-UAV-NEXT: ReturnStmt -// CHECK-SUBSCRIPT-UAV-NEXT: UnaryOperator {{.*}} 'hlsl_device element_type' prefix '*' cannot overflow -// CHECK-SUBSCRIPT-UAV-NEXT: CallExpr {{.*}} 'hlsl_device element_type *' -// CHECK-SUBSCRIPT-UAV-NEXT: ImplicitCastExpr {{.*}} -// CHECK-SUBSCRIPT-UAV-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_getpointer' 'void (...) noexcept' -// CHECK-SUBSCRIPT-UAV-NEXT: MemberExpr {{.*}} '__hlsl_resource_t +// CHECK-SUBSCRIPT-UAV: CXXMethodDecl {{.*}} operator[] 'hlsl_device element_type &(unsigned int)' +// CHECK-SUBSCRIPT-UAV: ParmVarDecl {{.*}} Index 'unsigned int' +// CHECK-SUBSCRIPT-UAV: CompoundStmt +// CHECK-SUBSCRIPT-UAV: ReturnStmt +// CHECK-SUBSCRIPT-UAV: UnaryOperator {{.*}} 'hlsl_device element_type' prefix '*' cannot overflow +// CHECK-SUBSCRIPT-UAV: CallExpr {{.*}} 'hlsl_device element_type *' +// CHECK-SUBSCRIPT-UAV: ImplicitCastExpr {{.*}} +// CHECK-SUBSCRIPT-UAV: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_getpointer' 'void (...) noexcept' +// CHECK-SUBSCRIPT-UAV: MemberExpr {{.*}} '__hlsl_resource_t // CHECK-SUBSCRIPT-UAV-SAME{LITERAL}: [[hlsl::resource_class( // CHECK-SUBSCRIPT-UAV-SAME{LITERAL}: [[hlsl::raw_buffer]] // CHECK-SUBSCRIPT-UAV-SAME{LITERAL}: [[hlsl::contained_type(element_type)]] // CHECK-SUBSCRIPT-UAV-SAME: ' lvalue .__handle {{.*}} -// CHECK-SUBSCRIPT-UAV-NEXT: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this -// CHECK-SUBSCRIPT-UAV-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'Index' 'unsigned int' -// CHECK-SUBSCRIPT-UAV-NEXT: AlwaysInlineAttr {{.*}} Implicit always_inline +// CHECK-SUBSCRIPT-UAV: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this +// CHECK-SUBSCRIPT-UAV: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'Index' 'unsigned int' +// CHECK-SUBSCRIPT-UAV: AlwaysInlineAttr {{.*}} Implicit always_inline // CHECK-NOSUBSCRIPT-NOT: CXXMethodDecl {{.*}} operator[] 'const hlsl_device element_type &(unsigned int) const' // CHECK-NOSUBSCRIPT-NOT: CXXMethodDecl {{.*}} operator[] 'hlsl_device element_type &(unsigned int)' @@ -193,110 +193,110 @@ RESOURCE Buffer; // Load method // CHECK-LOAD: CXXMethodDecl {{.*}} Load 'element_type (unsigned int)' -// CHECK-LOAD-NEXT: ParmVarDecl {{.*}} Index 'unsigned int' -// CHECK-LOAD-NEXT: CompoundStmt -// CHECK-LOAD-NEXT: ReturnStmt -// CHECK-LOAD-NEXT: UnaryOperator {{.*}} 'hlsl_device element_type' prefix '*' cannot overflow -// CHECK-LOAD-NEXT: CallExpr {{.*}} 'hlsl_device element_type *' -// CHECK-LOAD-NEXT: ImplicitCastExpr {{.*}} -// CHECK-LOAD-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_getpointer' 'void (...) noexcept' -// CHECK-LOAD-NEXT: MemberExpr {{.*}} '__hlsl_resource_t +// CHECK-LOAD: ParmVarDecl {{.*}} Index 'unsigned int' +// CHECK-LOAD: CompoundStmt +// CHECK-LOAD: ReturnStmt +// CHECK-LOAD: UnaryOperator {{.*}} 'hlsl_device element_type' prefix '*' cannot overflow +// CHECK-LOAD: CallExpr {{.*}} 'hlsl_device element_type *' +// CHECK-LOAD: ImplicitCastExpr {{.*}} +// CHECK-LOAD: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_getpointer' 'void (...) noexcept' +// CHECK-LOAD: MemberExpr {{.*}} '__hlsl_resource_t // CHECK-LOAD-SAME{LITERAL}: [[hlsl::resource_class( // CHECK-LOAD-SAME{LITERAL}: [[hlsl::contained_type(element_type)]] // CHECK-LOAD-SAME: ' lvalue .__handle {{.*}} -// CHECK-LOAD-NEXT: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this -// CHECK-LOAD-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'Index' 'unsigned int' -// CHECK-LOAD-NEXT: AlwaysInlineAttr {{.*}} Implicit always_inline +// CHECK-LOAD: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this +// CHECK-LOAD: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'Index' 'unsigned int' +// CHECK-LOAD: AlwaysInlineAttr {{.*}} Implicit always_inline // IncrementCounter method // CHECK-COUNTER: CXXMethodDecl {{.*}} IncrementCounter 'unsigned int ()' -// CHECK-COUNTER-NEXT: CompoundStmt -// CHECK-COUNTER-NEXT: ReturnStmt -// CHECK-COUNTER-NEXT: CallExpr {{.*}} 'unsigned int' -// CHECK-COUNTER-NEXT: ImplicitCastExpr {{.*}} -// CHECK-COUNTER-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_buffer_update_counter' 'unsigned int (...) noexcept' -// CHECK-COUNTER-NEXT: MemberExpr {{.*}} '__hlsl_resource_t +// CHECK-COUNTER: CompoundStmt +// CHECK-COUNTER: ReturnStmt +// CHECK-COUNTER: CallExpr {{.*}} 'unsigned int' +// CHECK-COUNTER: ImplicitCastExpr {{.*}} +// CHECK-COUNTER: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_buffer_update_counter' 'unsigned int (...) noexcept' +// CHECK-COUNTER: MemberExpr {{.*}} '__hlsl_resource_t // CHECK-COUNTER-SAME{LITERAL}: [[hlsl::resource_class(UAV)]] // CHECK-COUNTER-SAME{LITERAL}: [[hlsl::raw_buffer]] // CHECK-COUNTER-SAME{LITERAL}: [[hlsl::contained_type(element_type)]]' lvalue .__handle -// CHECK-COUNTER-NEXT: CXXThisExpr {{.*}} 'RWStructuredBuffer' lvalue implicit this -// CHECK-COUNTER-NEXT: IntegerLiteral {{.*}} 'int' 1 -// CHECK-COUNTER-NEXT: AlwaysInlineAttr {{.*}} Implicit always_inline +// CHECK-COUNTER: CXXThisExpr {{.*}} 'RWStructuredBuffer' lvalue implicit this +// CHECK-COUNTER: IntegerLiteral {{.*}} 'int' 1 +// CHECK-COUNTER: AlwaysInlineAttr {{.*}} Implicit always_inline // DecrementCounter method -// CHECK-COUNTER-NEXT: CXXMethodDecl {{.*}} DecrementCounter 'unsigned int ()' -// CHECK-COUNTER-NEXT: CompoundStmt -// CHECK-COUNTER-NEXT: ReturnStmt -// CHECK-COUNTER-NEXT: CallExpr {{.*}} 'unsigned int' -// CHECK-COUNTER-NEXT: ImplicitCastExpr {{.*}} -// CHECK-COUNTER-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_buffer_update_counter' 'unsigned int (...) noexcept' -// CHECK-COUNTER-NEXT: MemberExpr {{.*}} '__hlsl_resource_t +// CHECK-COUNTER: CXXMethodDecl {{.*}} DecrementCounter 'unsigned int ()' +// CHECK-COUNTER: CompoundStmt +// CHECK-COUNTER: ReturnStmt +// CHECK-COUNTER: CallExpr {{.*}} 'unsigned int' +// CHECK-COUNTER: ImplicitCastExpr {{.*}} +// CHECK-COUNTER: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_buffer_update_counter' 'unsigned int (...) noexcept' +// CHECK-COUNTER: MemberExpr {{.*}} '__hlsl_resource_t // CHECK-COUNTER-SAME{LITERAL}: [[hlsl::resource_class(UAV)]] // CHECK-COUNTER-SAME{LITERAL}: [[hlsl::raw_buffer]] // CHECK-COUNTER-SAME{LITERAL}: [[hlsl::contained_type(element_type)]]' lvalue .__handle -// CHECK-COUNTER-NEXT: CXXThisExpr {{.*}} 'RWStructuredBuffer' lvalue implicit this -// CHECK-COUNTER-NEXT: IntegerLiteral {{.*}} 'int' -1 -// CHECK-COUNTER-NEXT: AlwaysInlineAttr {{.*}} Implicit always_inline +// CHECK-COUNTER: CXXThisExpr {{.*}} 'RWStructuredBuffer' lvalue implicit this +// CHECK-COUNTER: IntegerLiteral {{.*}} 'int' -1 +// CHECK-COUNTER: AlwaysInlineAttr {{.*}} Implicit always_inline // Append method // CHECK-APPEND: CXXMethodDecl {{.*}} Append 'void (element_type)' -// CHECK-APPEND-NEXT: ParmVarDecl {{.*}} value 'element_type' -// CHECK-APPEND-NEXT: CompoundStmt -// CHECK-APPEND-NEXT: BinaryOperator {{.*}} 'hlsl_device element_type' '=' -// CHECK-APPEND-NEXT: UnaryOperator {{.*}} 'hlsl_device element_type' prefix '*' cannot overflow -// CHECK-APPEND-NEXT: CallExpr {{.*}} 'hlsl_device element_type *' -// CHECK-APPEND-NEXT: ImplicitCastExpr {{.*}} -// CHECK-APPEND-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_getpointer' 'void (...) noexcept' -// CHECK-APPEND-NEXT: MemberExpr {{.*}} '__hlsl_resource_t +// CHECK-APPEND: ParmVarDecl {{.*}} value 'element_type' +// CHECK-APPEND: CompoundStmt +// CHECK-APPEND: BinaryOperator {{.*}} 'hlsl_device element_type' '=' +// CHECK-APPEND: UnaryOperator {{.*}} 'hlsl_device element_type' prefix '*' cannot overflow +// CHECK-APPEND: CallExpr {{.*}} 'hlsl_device element_type *' +// CHECK-APPEND: ImplicitCastExpr {{.*}} +// CHECK-APPEND: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_getpointer' 'void (...) noexcept' +// CHECK-APPEND: MemberExpr {{.*}} '__hlsl_resource_t // CHECK-APPEND-SAME{LITERAL}: [[hlsl::resource_class(UAV)]] // CHECK-APPEND-SAME{LITERAL}: [[hlsl::raw_buffer]] // CHECK-APPEND-SAME{LITERAL}: [[hlsl::contained_type(element_type)]]' lvalue .__handle -// CHECK-APPEND-NEXT: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this -// CHECK-APPEND-NEXT: CallExpr {{.*}} 'unsigned int' -// CHECK-APPEND-NEXT: ImplicitCastExpr {{.*}} -// CHECK-APPEND-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_buffer_update_counter' 'unsigned int (...) noexcept' -// CHECK-APPEND-NEXT: MemberExpr {{.*}} '__hlsl_resource_t +// CHECK-APPEND: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this +// CHECK-APPEND: CallExpr {{.*}} 'unsigned int' +// CHECK-APPEND: ImplicitCastExpr {{.*}} +// CHECK-APPEND: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_buffer_update_counter' 'unsigned int (...) noexcept' +// CHECK-APPEND: MemberExpr {{.*}} '__hlsl_resource_t // CHECK-APPEND-SAME{LITERAL}: [[hlsl::resource_class(UAV)]] // CHECK-APPEND-SAME{LITERAL}: [[hlsl::raw_buffer]] // CHECK-APPEND-SAME{LITERAL}: [[hlsl::contained_type(element_type)]]' lvalue .__handle -// CHECK-APPEND-NEXT: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this -// CHECK-APPEND-NEXT: IntegerLiteral {{.*}} 'int' 1 -// CHECK-APPEND-NEXT: DeclRefExpr {{.*}} 'element_type' ParmVar {{.*}} 'value' 'element_type' +// CHECK-APPEND: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this +// CHECK-APPEND: IntegerLiteral {{.*}} 'int' 1 +// CHECK-APPEND: DeclRefExpr {{.*}} 'element_type' ParmVar {{.*}} 'value' 'element_type' // Consume method // CHECK-CONSUME: CXXMethodDecl {{.*}} Consume 'element_type ()' -// CHECK-CONSUME-NEXT: CompoundStmt -// CHECK-CONSUME-NEXT: ReturnStmt -// CHECK-CONSUME-NEXT: UnaryOperator {{.*}} 'hlsl_device element_type' prefix '*' cannot overflow -// CHECK-CONSUME-NEXT: CallExpr {{.*}} 'hlsl_device element_type *' -// CHECK-CONSUME-NEXT: ImplicitCastExpr {{.*}} -// CHECK-CONSUME-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_getpointer' 'void (...) noexcept' -// CHECK-CONSUME-NEXT: MemberExpr {{.*}} '__hlsl_resource_t +// CHECK-CONSUME: CompoundStmt +// CHECK-CONSUME: ReturnStmt +// CHECK-CONSUME: UnaryOperator {{.*}} 'hlsl_device element_type' prefix '*' cannot overflow +// CHECK-CONSUME: CallExpr {{.*}} 'hlsl_device element_type *' +// CHECK-CONSUME: ImplicitCastExpr {{.*}} +// CHECK-CONSUME: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_getpointer' 'void (...) noexcept' +// CHECK-CONSUME: MemberExpr {{.*}} '__hlsl_resource_t // CHECK-CONSUME-SAME{LITERAL}: [[hlsl::resource_class(UAV)]] // CHECK-CONSUME-SAME{LITERAL}: [[hlsl::raw_buffer]] // CHECK-CONSUME-SAME{LITERAL}: [[hlsl::contained_type(element_type)]]' lvalue .__handle -// CHECK-CONSUME-NEXT: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this -// CHECK-CONSUME-NEXT: CallExpr {{.*}} 'unsigned int' -// CHECK-CONSUME-NEXT: ImplicitCastExpr {{.*}} -// CHECK-CONSUME-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_buffer_update_counter' 'unsigned int (...) noexcept' -// CHECK-CONSUME-NEXT: MemberExpr {{.*}} '__hlsl_resource_t +// CHECK-CONSUME: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this +// CHECK-CONSUME: CallExpr {{.*}} 'unsigned int' +// CHECK-CONSUME: ImplicitCastExpr {{.*}} +// CHECK-CONSUME: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_buffer_update_counter' 'unsigned int (...) noexcept' +// CHECK-CONSUME: MemberExpr {{.*}} '__hlsl_resource_t // CHECK-CONSUME-SAME{LITERAL}: [[hlsl::resource_class(UAV)]] // CHECK-CONSUME-SAME{LITERAL}: [[hlsl::raw_buffer]] // CHECK-CONSUME-SAME{LITERAL}: [[hlsl::contained_type(element_type)]]' lvalue .__handle -// CHECK-CONSUME-NEXT: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this -// CHECK-CONSUME-NEXT: IntegerLiteral {{.*}} 'int' -1 +// CHECK-CONSUME: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this +// CHECK-CONSUME: IntegerLiteral {{.*}} 'int' -1 // CHECK: ClassTemplateSpecializationDecl {{.*}} class [[RESOURCE]] definition // CHECK: TemplateArgument type 'float' -// CHECK-NEXT: BuiltinType {{.*}} 'float' -// CHECK-NEXT: FinalAttr {{.*}} Implicit final -// CHECK-NEXT: FieldDecl {{.*}} implicit referenced __handle '__hlsl_resource_t +// CHECK: BuiltinType {{.*}} 'float' +// CHECK: FinalAttr {{.*}} Implicit final +// CHECK: FieldDecl {{.*}} implicit referenced __handle '__hlsl_resource_t // CHECK-SRV-SAME{LITERAL}: [[hlsl::resource_class(SRV)]] // CHECK-UAV-SAME{LITERAL}: [[hlsl::resource_class(UAV)]] // CHECK-ROV-SAME{LITERAL}: [[hlsl::is_rov]] // CHECK-SAME{LITERAL}: [[hlsl::raw_buffer]] -// CHECK-SAME{LITERAL}: [[hlsl::contained_type(float)]] +// CHECK-SAME{LITERAL}: [[hlsl::contained_type(float)]] \ No newline at end of file diff --git a/clang/test/AST/HLSL/TypdefArrayParam.hlsl b/clang/test/AST/HLSL/TypdefArrayParam.hlsl index 37f7a66de23a1..f208e49968866 100644 --- a/clang/test/AST/HLSL/TypdefArrayParam.hlsl +++ b/clang/test/AST/HLSL/TypdefArrayParam.hlsl @@ -4,15 +4,15 @@ typedef uint4 uint32_t4; typedef uint32_t4 uint32_t8[2]; // CHECK-LABEL: FunctionDecl {{.*}} used Accumulate 'uint32_t (uint32_t4[2])' -// CHECK-NEXT: ParmVarDecl {{.*}} used V 'uint32_t4[2]' +// CHECK: ParmVarDecl {{.*}} used V 'uint32_t4[2]' uint32_t Accumulate(uint32_t8 V) { uint32_t4 SumVec = V[0] + V[1]; return SumVec.x + SumVec.y + SumVec.z + SumVec.w; } // CHECK-LABEL: FunctionDecl {{.*}} used InOutAccu 'void (inout uint32_t4[2])' -// CHECK-NEXT: ParmVarDecl {{.*}} used V 'uint32_t4[2]' -// CHECK-NEXT: HLSLParamModifierAttr {{.*}} inout +// CHECK: ParmVarDecl {{.*}} used V 'uint32_t4[2]' +// CHECK: HLSLParamModifierAttr {{.*}} inout void InOutAccu(inout uint32_t8 V) { uint32_t4 SumVec = V[0] + V[1]; V[0] = SumVec; diff --git a/clang/test/AST/HLSL/TypedBuffers-AST.hlsl b/clang/test/AST/HLSL/TypedBuffers-AST.hlsl index d6b88e276762e..8245a7d942697 100644 --- a/clang/test/AST/HLSL/TypedBuffers-AST.hlsl +++ b/clang/test/AST/HLSL/TypedBuffers-AST.hlsl @@ -25,17 +25,17 @@ // instantiated specialization. // EMPTY: ClassTemplateDecl {{.*}} implicit [[RESOURCE]] -// EMPTY-NEXT: TemplateTypeParmDecl {{.*}} typename depth 0 index 0 element_type -// EMPTY-NEXT: ConceptSpecializationExpr {{.*}} 'bool' Concept {{.*}} '__is_typed_resource_element_compatible' -// EMPTY-NEXT: ImplicitConceptSpecializationDecl -// EMPTY-NEXT: TemplateArgument type 'type-parameter-0-0' -// EMPTY-NEXT: TemplateTypeParmType {{.*}} 'type-parameter-0-0' dependent depth 0 index 0 -// EMPTY-NEXT: TemplateTypeParm {{.*}} depth 0 index 0 -// EMPTY-NEXT: TemplateArgument type 'element_type':'type-parameter-0-0' -// EMPTY-NEXT: TemplateTypeParmType {{.*}} 'element_type' dependent depth 0 index 0 -// EMPTY-NEXT: TemplateTypeParm {{.*}} 'element_type' -// EMPTY-NEXT: CXXRecordDecl {{.*}} implicit class [[RESOURCE]] -// EMPTY-NEXT: FinalAttr {{.*}} Implicit final +// EMPTY: TemplateTypeParmDecl {{.*}} typename depth 0 index 0 element_type +// EMPTY: ConceptSpecializationExpr {{.*}} 'bool' Concept {{.*}} '__is_typed_resource_element_compatible' +// EMPTY: ImplicitConceptSpecializationDecl +// EMPTY: TemplateArgument type 'type-parameter-0-0' +// EMPTY: TemplateTypeParmType {{.*}} 'type-parameter-0-0' dependent depth 0 index 0 +// EMPTY: TemplateTypeParm {{.*}} depth 0 index 0 +// EMPTY: TemplateArgument type 'element_type':'type-parameter-0-0' +// EMPTY: TemplateTypeParmType {{.*}} 'element_type' dependent depth 0 index 0 +// EMPTY: TemplateTypeParm {{.*}} 'element_type' +// EMPTY: CXXRecordDecl {{.*}} implicit class [[RESOURCE]] +// EMPTY: FinalAttr {{.*}} Implicit final // There should be no more occurrences of the resource type // EMPTY-NOT: {{[^[:alnum:]]}}[[RESOURCE]] @@ -47,19 +47,19 @@ RESOURCE Buffer; #endif // CHECK: ClassTemplateDecl {{.*}} implicit [[RESOURCE]] -// CHECK-NEXT: TemplateTypeParmDecl {{.*}} typename depth 0 index 0 element_type -// CHECK-NEXT: ConceptSpecializationExpr {{.*}} 'bool' Concept {{.*}} '__is_typed_resource_element_compatible' -// CHECK-NEXT: ImplicitConceptSpecializationDecl -// CHECK-NEXT: TemplateArgument type 'type-parameter-0-0' -// CHECK-NEXT: TemplateTypeParmType {{.*}} 'type-parameter-0-0' dependent depth 0 index 0 -// CHECK-NEXT: TemplateTypeParm {{.*}} depth 0 index 0 -// CHECK-NEXT: TemplateArgument type 'element_type':'type-parameter-0-0' -// CHECK-NEXT: TemplateTypeParmType {{.*}} 'element_type' dependent depth 0 index 0 -// CHECK-NEXT: TemplateTypeParm {{.*}} 'element_type' -// CHECK-NEXT: CXXRecordDecl {{.*}} implicit class [[RESOURCE]] definition +// CHECK: TemplateTypeParmDecl {{.*}} typename depth 0 index 0 element_type +// CHECK: ConceptSpecializationExpr {{.*}} 'bool' Concept {{.*}} '__is_typed_resource_element_compatible' +// CHECK: ImplicitConceptSpecializationDecl +// CHECK: TemplateArgument type 'type-parameter-0-0' +// CHECK: TemplateTypeParmType {{.*}} 'type-parameter-0-0' dependent depth 0 index 0 +// CHECK: TemplateTypeParm {{.*}} depth 0 index 0 +// CHECK: TemplateArgument type 'element_type':'type-parameter-0-0' +// CHECK: TemplateTypeParmType {{.*}} 'element_type' dependent depth 0 index 0 +// CHECK: TemplateTypeParm {{.*}} 'element_type' +// CHECK: CXXRecordDecl {{.*}} implicit class [[RESOURCE]] definition // CHECK: FinalAttr {{.*}} Implicit final -// CHECK-NEXT: FieldDecl {{.*}} implicit __handle '__hlsl_resource_t +// CHECK: FieldDecl {{.*}} implicit __handle '__hlsl_resource_t // CHECK-UAV-SAME{LITERAL}: [[hlsl::resource_class(UAV)]] // CHECK-SRV-SAME{LITERAL}: [[hlsl::resource_class(SRV)]] // CHECK-SAME{LITERAL}: [[hlsl::contained_type(element_type)]] @@ -67,125 +67,125 @@ RESOURCE Buffer; // Default constructor // CHECK: CXXConstructorDecl {{.*}} [[RESOURCE]] 'void ()' inline -// CHECK-NEXT: CompoundStmt -// CHECK-NEXT: BinaryOperator {{.*}} '=' -// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle -// CHECK-NEXT: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this -// CHECK-NEXT: CallExpr {{.*}} '__hlsl_resource_t -// CHECK-NEXT: ImplicitCastExpr {{.*}} -// CHECK-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_uninitializedhandle' -// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle -// CHECK-NEXT: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this -// CHECK-NEXT: AlwaysInlineAttr +// CHECK: CompoundStmt +// CHECK: BinaryOperator {{.*}} '=' +// CHECK: MemberExpr {{.*}} lvalue .__handle +// CHECK: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this +// CHECK: CallExpr {{.*}} '__hlsl_resource_t +// CHECK: ImplicitCastExpr {{.*}} +// CHECK: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_uninitializedhandle' +// CHECK: MemberExpr {{.*}} lvalue .__handle +// CHECK: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this +// CHECK: AlwaysInlineAttr // Constructor from binding // CHECK: CXXConstructorDecl {{.*}} [[RESOURCE]] 'void (unsigned int, unsigned int, int, unsigned int, const char *)' inline -// CHECK-NEXT: ParmVarDecl {{.*}} registerNo 'unsigned int' -// CHECK-NEXT: ParmVarDecl {{.*}} spaceNo 'unsigned int' -// CHECK-NEXT: ParmVarDecl {{.*}} range 'int' -// CHECK-NEXT: ParmVarDecl {{.*}} index 'unsigned int' -// CHECK-NEXT: ParmVarDecl {{.*}} name 'const char *' -// CHECK-NEXT: CompoundStmt {{.*}} -// CHECK-NEXT: BinaryOperator {{.*}} '=' -// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle -// CHECK-NEXT: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this -// CHECK-NEXT: CallExpr {{.*}} '__hlsl_resource_t -// CHECK-NEXT: ImplicitCastExpr {{.*}} -// CHECK-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_handlefrombinding' -// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle -// CHECK-NEXT: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this -// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'registerNo' 'unsigned int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'spaceNo' 'unsigned int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'int' ParmVar {{.*}} 'range' 'int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'index' 'unsigned int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'const char *' ParmVar {{.*}} 'name' 'const char *' -// CHECK-NEXT: AlwaysInlineAttr +// CHECK: ParmVarDecl {{.*}} registerNo 'unsigned int' +// CHECK: ParmVarDecl {{.*}} spaceNo 'unsigned int' +// CHECK: ParmVarDecl {{.*}} range 'int' +// CHECK: ParmVarDecl {{.*}} index 'unsigned int' +// CHECK: ParmVarDecl {{.*}} name 'const char *' +// CHECK: CompoundStmt {{.*}} +// CHECK: BinaryOperator {{.*}} '=' +// CHECK: MemberExpr {{.*}} lvalue .__handle +// CHECK: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this +// CHECK: CallExpr {{.*}} '__hlsl_resource_t +// CHECK: ImplicitCastExpr {{.*}} +// CHECK: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_handlefrombinding' +// CHECK: MemberExpr {{.*}} lvalue .__handle +// CHECK: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this +// CHECK: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'registerNo' 'unsigned int' +// CHECK: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'spaceNo' 'unsigned int' +// CHECK: DeclRefExpr {{.*}} 'int' ParmVar {{.*}} 'range' 'int' +// CHECK: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'index' 'unsigned int' +// CHECK: DeclRefExpr {{.*}} 'const char *' ParmVar {{.*}} 'name' 'const char *' +// CHECK: AlwaysInlineAttr // Constructor from implicit binding // CHECK: CXXConstructorDecl {{.*}} [[RESOURCE]] 'void (unsigned int, int, unsigned int, unsigned int, const char *)' inline -// CHECK-NEXT: ParmVarDecl {{.*}} spaceNo 'unsigned int' -// CHECK-NEXT: ParmVarDecl {{.*}} range 'int' -// CHECK-NEXT: ParmVarDecl {{.*}} index 'unsigned int' -// CHECK-NEXT: ParmVarDecl {{.*}} orderId 'unsigned int' -// CHECK-NEXT: ParmVarDecl {{.*}} name 'const char *' -// CHECK-NEXT: CompoundStmt {{.*}} -// CHECK-NEXT: BinaryOperator {{.*}} '=' -// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle -// CHECK-NEXT: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this -// CHECK-NEXT: CallExpr {{.*}} '__hlsl_resource_t -// CHECK-NEXT: ImplicitCastExpr {{.*}} -// CHECK-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_handlefromimplicitbinding' -// CHECK-NEXT: MemberExpr {{.*}} lvalue .__handle -// CHECK-NEXT: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this -// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'spaceNo' 'unsigned int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'int' ParmVar {{.*}} 'range' 'int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'index' 'unsigned int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'orderId' 'unsigned int' -// CHECK-NEXT: DeclRefExpr {{.*}} 'const char *' ParmVar {{.*}} 'name' 'const char *' -// CHECK-NEXT: AlwaysInlineAttr +// CHECK: ParmVarDecl {{.*}} spaceNo 'unsigned int' +// CHECK: ParmVarDecl {{.*}} range 'int' +// CHECK: ParmVarDecl {{.*}} index 'unsigned int' +// CHECK: ParmVarDecl {{.*}} orderId 'unsigned int' +// CHECK: ParmVarDecl {{.*}} name 'const char *' +// CHECK: CompoundStmt {{.*}} +// CHECK: BinaryOperator {{.*}} '=' +// CHECK: MemberExpr {{.*}} lvalue .__handle +// CHECK: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this +// CHECK: CallExpr {{.*}} '__hlsl_resource_t +// CHECK: ImplicitCastExpr {{.*}} +// CHECK: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_handlefromimplicitbinding' +// CHECK: MemberExpr {{.*}} lvalue .__handle +// CHECK: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this +// CHECK: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'spaceNo' 'unsigned int' +// CHECK: DeclRefExpr {{.*}} 'int' ParmVar {{.*}} 'range' 'int' +// CHECK: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'index' 'unsigned int' +// CHECK: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'orderId' 'unsigned int' +// CHECK: DeclRefExpr {{.*}} 'const char *' ParmVar {{.*}} 'name' 'const char *' +// CHECK: AlwaysInlineAttr // Subscript operators // CHECK: CXXMethodDecl {{.*}} operator[] 'const hlsl_device element_type &(unsigned int) const' -// CHECK-NEXT: ParmVarDecl {{.*}} Index 'unsigned int' -// CHECK-NEXT: CompoundStmt -// CHECK-NEXT: ReturnStmt -// CHECK-NEXT: UnaryOperator {{.*}} 'hlsl_device element_type' prefix '*' cannot overflow -// CHECK-NEXT: CallExpr {{.*}} 'hlsl_device element_type *' -// CHECK-NEXT: ImplicitCastExpr {{.*}} -// CHECK-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_getpointer' 'void (...) noexcept' -// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t +// CHECK: ParmVarDecl {{.*}} Index 'unsigned int' +// CHECK: CompoundStmt +// CHECK: ReturnStmt +// CHECK: UnaryOperator {{.*}} 'hlsl_device element_type' prefix '*' cannot overflow +// CHECK: CallExpr {{.*}} 'hlsl_device element_type *' +// CHECK: ImplicitCastExpr {{.*}} +// CHECK: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_getpointer' 'void (...) noexcept' +// CHECK: MemberExpr {{.*}} '__hlsl_resource_t // CHECK-UAV-SAME{LITERAL}: [[hlsl::resource_class(UAV)]] // CHECK-SRV-SAME{LITERAL}: [[hlsl::resource_class(SRV)]] // CHECK-SAME{LITERAL}: [[hlsl::contained_type(element_type)]] // CHECK-SAME: ' lvalue .__handle {{.*}} -// CHECK-NEXT: CXXThisExpr {{.*}} 'const [[RESOURCE]]' lvalue implicit this -// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'Index' 'unsigned int' -// CHECK-NEXT: AlwaysInlineAttr {{.*}} Implicit always_inline - -// CHECK-UAV-NEXT: CXXMethodDecl {{.*}} operator[] 'hlsl_device element_type &(unsigned int)' -// CHECK-UAV-NEXT: ParmVarDecl {{.*}} Index 'unsigned int' -// CHECK-UAV-NEXT: CompoundStmt -// CHECK-UAV-NEXT: ReturnStmt -// CHECK-UAV-NEXT: UnaryOperator {{.*}} 'hlsl_device element_type' prefix '*' cannot overflow -// CHECK-UAV-NEXT: CallExpr {{.*}} 'hlsl_device element_type *' -// CHECK-UAV-NEXT: ImplicitCastExpr {{.*}} -// CHECK-UAV-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_getpointer' 'void (...) noexcept' -// CHECK-UAV-NEXT: MemberExpr {{.*}} '__hlsl_resource_t +// CHECK: CXXThisExpr {{.*}} 'const [[RESOURCE]]' lvalue implicit this +// CHECK: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'Index' 'unsigned int' +// CHECK: AlwaysInlineAttr {{.*}} Implicit always_inline + +// CHECK-UAV: CXXMethodDecl {{.*}} operator[] 'hlsl_device element_type &(unsigned int)' +// CHECK-UAV: ParmVarDecl {{.*}} Index 'unsigned int' +// CHECK-UAV: CompoundStmt +// CHECK-UAV: ReturnStmt +// CHECK-UAV: UnaryOperator {{.*}} 'hlsl_device element_type' prefix '*' cannot overflow +// CHECK-UAV: CallExpr {{.*}} 'hlsl_device element_type *' +// CHECK-UAV: ImplicitCastExpr {{.*}} +// CHECK-UAV: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_getpointer' 'void (...) noexcept' +// CHECK-UAV: MemberExpr {{.*}} '__hlsl_resource_t // CHECK-UAV-SAME{LITERAL}: [[hlsl::resource_class(UAV)]] // CHECK-UAV-SAME{LITERAL}: [[hlsl::contained_type(element_type)]] // CHECK-UAV-SAME: ' lvalue .__handle {{.*}} -// CHECK-UAV-NEXT: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this -// CHECK-UAV-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'Index' 'unsigned int' -// CHECK-UAV-NEXT: AlwaysInlineAttr {{.*}} Implicit always_inline +// CHECK-UAV: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this +// CHECK-UAV: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'Index' 'unsigned int' +// CHECK-UAV: AlwaysInlineAttr {{.*}} Implicit always_inline // Load method -// CHECK-NEXT: CXXMethodDecl {{.*}} Load 'element_type (unsigned int)' -// CHECK-NEXT: ParmVarDecl {{.*}} Index 'unsigned int' -// CHECK-NEXT: CompoundStmt -// CHECK-NEXT: ReturnStmt -// CHECK-NEXT: UnaryOperator {{.*}} 'hlsl_device element_type' prefix '*' cannot overflow -// CHECK-NEXT: CallExpr {{.*}} 'hlsl_device element_type *' -// CHECK-NEXT: ImplicitCastExpr {{.*}} -// CHECK-NEXT: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_getpointer' 'void (...) noexcept' -// CHECK-NEXT: MemberExpr {{.*}} '__hlsl_resource_t +// CHECK: CXXMethodDecl {{.*}} Load 'element_type (unsigned int)' +// CHECK: ParmVarDecl {{.*}} Index 'unsigned int' +// CHECK: CompoundStmt +// CHECK: ReturnStmt +// CHECK: UnaryOperator {{.*}} 'hlsl_device element_type' prefix '*' cannot overflow +// CHECK: CallExpr {{.*}} 'hlsl_device element_type *' +// CHECK: ImplicitCastExpr {{.*}} +// CHECK: DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_hlsl_resource_getpointer' 'void (...) noexcept' +// CHECK: MemberExpr {{.*}} '__hlsl_resource_t // CHECK-UAV-SAME{LITERAL}: [[hlsl::resource_class(UAV)]] // CHECK-SRV-SAME{LITERAL}: [[hlsl::resource_class(SRV)]] // CHECK-SAME{LITERAL}: [[hlsl::contained_type(element_type)]] // CHECK-SAME: ' lvalue .__handle {{.*}} -// CHECK-NEXT: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this -// CHECK-NEXT: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'Index' 'unsigned int' -// CHECK-NEXT: AlwaysInlineAttr {{.*}} Implicit always_inline +// CHECK: CXXThisExpr {{.*}} '[[RESOURCE]]' lvalue implicit this +// CHECK: DeclRefExpr {{.*}} 'unsigned int' ParmVar {{.*}} 'Index' 'unsigned int' +// CHECK: AlwaysInlineAttr {{.*}} Implicit always_inline // CHECK: ClassTemplateSpecializationDecl {{.*}} class [[RESOURCE]] definition // CHECK: TemplateArgument type 'float' -// CHECK-NEXT: BuiltinType {{.*}} 'float' -// CHECK-NEXT: FinalAttr {{.*}} Implicit final -// CHECK-NEXT: FieldDecl {{.*}} implicit referenced __handle '__hlsl_resource_t +// CHECK: BuiltinType {{.*}} 'float' +// CHECK: FinalAttr {{.*}} Implicit final +// CHECK: FieldDecl {{.*}} implicit referenced __handle '__hlsl_resource_t // CHECK-UAV-SAME{LITERAL}: [[hlsl::resource_class(UAV)]] // CHECK-SRV-SAME{LITERAL}: [[hlsl::resource_class(SRV)]] -// CHECK-SAME{LITERAL}: [[hlsl::contained_type(float)]] +// CHECK-SAME{LITERAL}: [[hlsl::contained_type(float)]] \ No newline at end of file diff --git a/clang/test/AST/HLSL/ast-dump-comment-cbuffer.hlsl b/clang/test/AST/HLSL/ast-dump-comment-cbuffer.hlsl index 4b03db4e47568..ede22b1fd6a37 100644 --- a/clang/test/AST/HLSL/ast-dump-comment-cbuffer.hlsl +++ b/clang/test/AST/HLSL/ast-dump-comment-cbuffer.hlsl @@ -19,11 +19,164 @@ cbuffer A { int b; } -// AST: HLSLBufferDecl {{.*}} line:11:9 cbuffer A -// AST-NEXT: HLSLResourceClassAttr {{.*}} Implicit CBuffer -// AST-NEXT: HLSLResourceBindingAttr {{.*}} Implicit "" "0" -// AST-NEXT: FullComment -// AST-NEXT: ParagraphComment -// AST-NEXT: TextComment {{.*}} Text=" CBuffer decl." -// AST-NEXT: VarDecl {{.*}} a 'hlsl_constant float' -// AST-NEXT: VarDecl {{.*}} b 'hlsl_constant int' +// AST: TranslationUnitDecl {{.*}} <> +// AST-NEXT: |-NamespaceDecl {{.*}} <> implicit hlsl +// AST-NEXT: | |-TypeAliasTemplateDecl {{.*}} <> implicit vector +// AST-NEXT: | | |-TemplateTypeParmDecl {{.*}} <> class depth 0 index 0 element +// AST-NEXT: | | | `-TemplateArgument type 'float' +// AST-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'float' +// AST-NEXT: | | |-NonTypeTemplateParmDecl {{.*}} <> 'int' depth 0 index 1 element_count +// AST-NEXT: | | | `-TemplateArgument expr '4' +// AST-NEXT: | | | `-IntegerLiteral {{.*}} <> 'int' 4 +// AST-NEXT: | | `-TypeAliasDecl {{.*}} <> implicit vector 'vector' +// AST-NEXT: | | `-typeDetails: DependentSizedExtVectorType {{.*}} 'vector' dependent +// AST-NEXT: | | |-typeDetails: TemplateTypeParmType {{.*}} 'element' dependent depth 0 index 0 +// AST-NEXT: | | | `-TemplateTypeParm {{.*}} 'element' +// AST-NEXT: | | `-DeclRefExpr {{.*}} <> 'int' lvalue NonTypeTemplateParm {{.*}} 'element_count' 'int' +// AST-NEXT: | |-ClassTemplateDecl {{.*}} <> implicit Buffer +// AST-NEXT: | | |-TemplateTypeParmDecl {{.*}} <> typename depth 0 index 0 element_type +// AST-NEXT: | | |-ConceptSpecializationExpr {{.*}} <> 'bool' Concept {{.*}} '__is_typed_resource_element_compatible' +// AST-NEXT: | | | |-ImplicitConceptSpecializationDecl {{.*}} <> +// AST-NEXT: | | | | `-TemplateArgument type 'type-parameter-0-0' +// AST-NEXT: | | | | `-typeDetails: TemplateTypeParmType {{.*}} 'type-parameter-0-0' dependent depth 0 index 0 +// AST-NEXT: | | | | `-TemplateTypeParm {{.*}} depth 0 index 0 +// AST-NEXT: | | | `-TemplateArgument type 'element_type':'type-parameter-0-0' +// AST-NEXT: | | | `-typeDetails: TemplateTypeParmType {{.*}} 'element_type' dependent depth 0 index 0 +// AST-NEXT: | | | `-TemplateTypeParm {{.*}} 'element_type' +// AST-NEXT: | | `-CXXRecordDecl {{.*}} <> implicit class Buffer +// AST-NEXT: | | `-attrDetails: FinalAttr {{.*}} <> Implicit final +// AST-NEXT: | |-ClassTemplateDecl {{.*}} <> implicit RWBuffer +// AST-NEXT: | | |-TemplateTypeParmDecl {{.*}} <> typename depth 0 index 0 element_type +// AST-NEXT: | | |-ConceptSpecializationExpr {{.*}} <> 'bool' Concept {{.*}} '__is_typed_resource_element_compatible' +// AST-NEXT: | | | |-ImplicitConceptSpecializationDecl {{.*}} <> +// AST-NEXT: | | | | `-TemplateArgument type 'type-parameter-0-0' +// AST-NEXT: | | | | `-typeDetails: TemplateTypeParmType {{.*}} 'type-parameter-0-0' dependent depth 0 index 0 +// AST-NEXT: | | | | `-TemplateTypeParm {{.*}} depth 0 index 0 +// AST-NEXT: | | | `-TemplateArgument type 'element_type':'type-parameter-0-0' +// AST-NEXT: | | | `-typeDetails: TemplateTypeParmType {{.*}} 'element_type' dependent depth 0 index 0 +// AST-NEXT: | | | `-TemplateTypeParm {{.*}} 'element_type' +// AST-NEXT: | | `-CXXRecordDecl {{.*}} <> implicit class RWBuffer +// AST-NEXT: | | `-attrDetails: FinalAttr {{.*}} <> Implicit final +// AST-NEXT: | |-ClassTemplateDecl {{.*}} <> implicit RasterizerOrderedBuffer +// AST-NEXT: | | |-TemplateTypeParmDecl {{.*}} <> typename depth 0 index 0 element_type +// AST-NEXT: | | |-ConceptSpecializationExpr {{.*}} <> 'bool' Concept {{.*}} '__is_structured_resource_element_compatible' +// AST-NEXT: | | | |-ImplicitConceptSpecializationDecl {{.*}} <> +// AST-NEXT: | | | | `-TemplateArgument type 'type-parameter-0-0' +// AST-NEXT: | | | | `-typeDetails: TemplateTypeParmType {{.*}} 'type-parameter-0-0' dependent depth 0 index 0 +// AST-NEXT: | | | | `-TemplateTypeParm {{.*}} depth 0 index 0 +// AST-NEXT: | | | `-TemplateArgument type 'element_type':'type-parameter-0-0' +// AST-NEXT: | | | `-typeDetails: TemplateTypeParmType {{.*}} 'element_type' dependent depth 0 index 0 +// AST-NEXT: | | | `-TemplateTypeParm {{.*}} 'element_type' +// AST-NEXT: | | `-CXXRecordDecl {{.*}} <> implicit class RasterizerOrderedBuffer +// AST-NEXT: | | `-attrDetails: FinalAttr {{.*}} <> Implicit final +// AST-NEXT: | |-ClassTemplateDecl {{.*}} <> implicit StructuredBuffer +// AST-NEXT: | | |-TemplateTypeParmDecl {{.*}} <> typename depth 0 index 0 element_type +// AST-NEXT: | | |-ConceptSpecializationExpr {{.*}} <> 'bool' Concept {{.*}} '__is_structured_resource_element_compatible' +// AST-NEXT: | | | |-ImplicitConceptSpecializationDecl {{.*}} <> +// AST-NEXT: | | | | `-TemplateArgument type 'type-parameter-0-0' +// AST-NEXT: | | | | `-typeDetails: TemplateTypeParmType {{.*}} 'type-parameter-0-0' dependent depth 0 index 0 +// AST-NEXT: | | | | `-TemplateTypeParm {{.*}} depth 0 index 0 +// AST-NEXT: | | | `-TemplateArgument type 'element_type':'type-parameter-0-0' +// AST-NEXT: | | | `-typeDetails: TemplateTypeParmType {{.*}} 'element_type' dependent depth 0 index 0 +// AST-NEXT: | | | `-TemplateTypeParm {{.*}} 'element_type' +// AST-NEXT: | | `-CXXRecordDecl {{.*}} <> implicit class StructuredBuffer +// AST-NEXT: | | `-attrDetails: FinalAttr {{.*}} <> Implicit final +// AST-NEXT: | |-ClassTemplateDecl {{.*}} <> implicit RWStructuredBuffer +// AST-NEXT: | | |-TemplateTypeParmDecl {{.*}} <> typename depth 0 index 0 element_type +// AST-NEXT: | | |-ConceptSpecializationExpr {{.*}} <> 'bool' Concept {{.*}} '__is_structured_resource_element_compatible' +// AST-NEXT: | | | |-ImplicitConceptSpecializationDecl {{.*}} <> +// AST-NEXT: | | | | `-TemplateArgument type 'type-parameter-0-0' +// AST-NEXT: | | | | `-typeDetails: TemplateTypeParmType {{.*}} 'type-parameter-0-0' dependent depth 0 index 0 +// AST-NEXT: | | | | `-TemplateTypeParm {{.*}} depth 0 index 0 +// AST-NEXT: | | | `-TemplateArgument type 'element_type':'type-parameter-0-0' +// AST-NEXT: | | | `-typeDetails: TemplateTypeParmType {{.*}} 'element_type' dependent depth 0 index 0 +// AST-NEXT: | | | `-TemplateTypeParm {{.*}} 'element_type' +// AST-NEXT: | | `-CXXRecordDecl {{.*}} <> implicit class RWStructuredBuffer +// AST-NEXT: | | `-attrDetails: FinalAttr {{.*}} <> Implicit final +// AST-NEXT: | |-ClassTemplateDecl {{.*}} <> implicit AppendStructuredBuffer +// AST-NEXT: | | |-TemplateTypeParmDecl {{.*}} <> typename depth 0 index 0 element_type +// AST-NEXT: | | |-ConceptSpecializationExpr {{.*}} <> 'bool' Concept {{.*}} '__is_structured_resource_element_compatible' +// AST-NEXT: | | | |-ImplicitConceptSpecializationDecl {{.*}} <> +// AST-NEXT: | | | | `-TemplateArgument type 'type-parameter-0-0' +// AST-NEXT: | | | | `-typeDetails: TemplateTypeParmType {{.*}} 'type-parameter-0-0' dependent depth 0 index 0 +// AST-NEXT: | | | | `-TemplateTypeParm {{.*}} depth 0 index 0 +// AST-NEXT: | | | `-TemplateArgument type 'element_type':'type-parameter-0-0' +// AST-NEXT: | | | `-typeDetails: TemplateTypeParmType {{.*}} 'element_type' dependent depth 0 index 0 +// AST-NEXT: | | | `-TemplateTypeParm {{.*}} 'element_type' +// AST-NEXT: | | `-CXXRecordDecl {{.*}} <> implicit class AppendStructuredBuffer +// AST-NEXT: | | `-attrDetails: FinalAttr {{.*}} <> Implicit final +// AST-NEXT: | |-ClassTemplateDecl {{.*}} <> implicit ConsumeStructuredBuffer +// AST-NEXT: | | |-TemplateTypeParmDecl {{.*}} <> typename depth 0 index 0 element_type +// AST-NEXT: | | |-ConceptSpecializationExpr {{.*}} <> 'bool' Concept {{.*}} '__is_structured_resource_element_compatible' +// AST-NEXT: | | | |-ImplicitConceptSpecializationDecl {{.*}} <> +// AST-NEXT: | | | | `-TemplateArgument type 'type-parameter-0-0' +// AST-NEXT: | | | | `-typeDetails: TemplateTypeParmType {{.*}} 'type-parameter-0-0' dependent depth 0 index 0 +// AST-NEXT: | | | | `-TemplateTypeParm {{.*}} depth 0 index 0 +// AST-NEXT: | | | `-TemplateArgument type 'element_type':'type-parameter-0-0' +// AST-NEXT: | | | `-typeDetails: TemplateTypeParmType {{.*}} 'element_type' dependent depth 0 index 0 +// AST-NEXT: | | | `-TemplateTypeParm {{.*}} 'element_type' +// AST-NEXT: | | `-CXXRecordDecl {{.*}} <> implicit class ConsumeStructuredBuffer +// AST-NEXT: | | `-attrDetails: FinalAttr {{.*}} <> Implicit final +// AST-NEXT: | |-ClassTemplateDecl {{.*}} <> implicit RasterizerOrderedStructuredBuffer +// AST-NEXT: | | |-TemplateTypeParmDecl {{.*}} <> typename depth 0 index 0 element_type +// AST-NEXT: | | |-ConceptSpecializationExpr {{.*}} <> 'bool' Concept {{.*}} '__is_structured_resource_element_compatible' +// AST-NEXT: | | | |-ImplicitConceptSpecializationDecl {{.*}} <> +// AST-NEXT: | | | | `-TemplateArgument type 'type-parameter-0-0' +// AST-NEXT: | | | | `-typeDetails: TemplateTypeParmType {{.*}} 'type-parameter-0-0' dependent depth 0 index 0 +// AST-NEXT: | | | | `-TemplateTypeParm {{.*}} depth 0 index 0 +// AST-NEXT: | | | `-TemplateArgument type 'element_type':'type-parameter-0-0' +// AST-NEXT: | | | `-typeDetails: TemplateTypeParmType {{.*}} 'element_type' dependent depth 0 index 0 +// AST-NEXT: | | | `-TemplateTypeParm {{.*}} 'element_type' +// AST-NEXT: | | `-CXXRecordDecl {{.*}} <> implicit class RasterizerOrderedStructuredBuffer +// AST-NEXT: | | `-attrDetails: FinalAttr {{.*}} <> Implicit final +// AST-NEXT: | |-CXXRecordDecl {{.*}} <> implicit class ByteAddressBuffer +// AST-NEXT: | | `-attrDetails: FinalAttr {{.*}} <> Implicit final +// AST-NEXT: | |-CXXRecordDecl {{.*}} <> implicit class RWByteAddressBuffer +// AST-NEXT: | | `-attrDetails: FinalAttr {{.*}} <> Implicit final +// AST-NEXT: | `-CXXRecordDecl {{.*}} <> implicit class RasterizerOrderedByteAddressBuffer +// AST-NEXT: | `-attrDetails: FinalAttr {{.*}} <> Implicit final +// AST-NEXT: |-ConceptDecl {{.*}} <> __is_typed_resource_element_compatible +// AST-NEXT: | |-TemplateTypeParmDecl {{.*}} <> referenced typename depth 0 index 0 element_type +// AST-NEXT: | `-TypeTraitExpr {{.*}} <> 'bool' __builtin_hlsl_is_typed_resource_element_compatible +// AST-NEXT: | `-typeDetails: TemplateTypeParmType {{.*}} 'element_type' dependent depth 0 index 0 +// AST-NEXT: | `-TemplateTypeParm {{.*}} 'element_type' +// AST-NEXT: |-ConceptDecl {{.*}} <> __is_structured_resource_element_compatible +// AST-NEXT: | |-TemplateTypeParmDecl {{.*}} <> referenced typename depth 0 index 0 element_type +// AST-NEXT: | `-BinaryOperator {{.*}} <> 'bool' lvalue '&&' +// AST-NEXT: | |-UnaryOperator {{.*}} <> 'bool' lvalue prefix '!' cannot overflow +// AST-NEXT: | | `-TypeTraitExpr {{.*}} <> 'bool' __builtin_hlsl_is_intangible +// AST-NEXT: | | `-typeDetails: TemplateTypeParmType {{.*}} 'element_type' dependent depth 0 index 0 +// AST-NEXT: | | `-TemplateTypeParm {{.*}} 'element_type' +// AST-NEXT: | `-BinaryOperator {{.*}} <> 'bool' lvalue '>=' +// AST-NEXT: | |-UnaryExprOrTypeTraitExpr {{.*}} <> 'bool' sizeof 'element_type' +// AST: |-UsingDirectiveDecl {{.*}} <> Namespace {{.*}} 'hlsl' +// AST-NEXT: |-TypedefDecl {{.*}} <> implicit __NSConstantString '__NSConstantString_tag' +// AST-NEXT: | `-typeDetails: RecordType {{.*}} '__NSConstantString_tag' +// AST-NEXT: | `-CXXRecord {{.*}} '__NSConstantString_tag' +// AST-NEXT: |-TypedefDecl {{.*}} <> implicit __builtin_va_list 'void *' +// AST-NEXT: | `-typeDetails: PointerType {{.*}} 'void *' +// AST-NEXT: | `-typeDetails: BuiltinType {{.*}} 'void' +// AST-NEXT: `-HLSLBufferDecl {{.*}} cbuffer A +// AST-NEXT: |-attrDetails: HLSLResourceClassAttr {{.*}} <> Implicit CBuffer +// AST-NEXT: |-attrDetails: HLSLResourceBindingAttr {{.*}} <> Implicit "" "0" +// AST-NEXT: |-FullComment {{.*}} +// AST-NEXT: | `-ParagraphComment {{.*}} +// AST-NEXT: | `-TextComment {{.*}} Text=" CBuffer decl." +// AST-NEXT: |-VarDecl {{.*}} a 'hlsl_constant float' +// AST-NEXT: | `-qualTypeDetail: QualType {{.*}} 'hlsl_constant float' hlsl_constant +// AST-NEXT: | `-typeDetails: BuiltinType {{.*}} 'float' +// AST-NEXT: |-VarDecl {{.*}} b 'hlsl_constant int' +// AST-NEXT: | `-qualTypeDetail: QualType {{.*}} 'hlsl_constant int' hlsl_constant +// AST-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// AST-NEXT: `-CXXRecordDecl {{.*}} <> implicit struct __cblayout_A definition +// AST-NEXT: |-DefinitionData pass_in_registers aggregate standard_layout trivially_copyable pod trivial literal +// AST-NEXT: | |-DefaultConstructor exists trivial needs_implicit +// AST-NEXT: | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// AST-NEXT: | |-MoveConstructor exists simple trivial needs_implicit +// AST-NEXT: | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +// AST-NEXT: | |-MoveAssignment exists simple trivial needs_implicit +// AST-NEXT: | `-Destructor simple irrelevant trivial needs_implicit +// AST-NEXT: |-attrDetails: PackedAttr {{.*}} <> Implicit +// AST-NEXT: |-FieldDecl {{.*}} <> a 'float' +// AST-NEXT: `-FieldDecl {{.*}} <> b 'int' + diff --git a/clang/test/AST/HLSL/is_structured_resource_element_compatible_concept.hlsl b/clang/test/AST/HLSL/is_structured_resource_element_compatible_concept.hlsl index fa8d78f38494a..28ed74ac6c4a8 100644 --- a/clang/test/AST/HLSL/is_structured_resource_element_compatible_concept.hlsl +++ b/clang/test/AST/HLSL/is_structured_resource_element_compatible_concept.hlsl @@ -1,15 +1,13 @@ // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -ast-dump -ast-dump-filter=__is_structured_resource_element_compatible %s | FileCheck %s -// CHECK: ConceptDecl {{.*}} __is_structured_resource_element_compatible -// CHECK: |-TemplateTypeParmDecl {{.*}} referenced typename depth 0 index 0 element_type -// CHECK: `-BinaryOperator {{.*}} 'bool' lvalue '&&' -// CHECK: |-UnaryOperator {{.*}} 'bool' lvalue prefix '!' cannot overflow -// CHECK: | `-TypeTraitExpr {{.*}} 'bool' __builtin_hlsl_is_intangible -// CHECK: | `-TemplateTypeParmType {{.*}} 'element_type' dependent depth 0 index 0 -// CHECK: | `-TemplateTypeParm {{.*}} 'element_type' -// CHECK: `-BinaryOperator {{.*}} 'bool' lvalue '>=' -// CHECK: |-UnaryExprOrTypeTraitExpr {{.*}} 'bool' sizeof 'element_type' -// CHECK: `-IntegerLiteral {{.*}} '__size_t':'unsigned long' 1 - - StructuredBuffer Buffer; + +// CHECK: ConceptDecl {{.*}} <> __is_structured_resource_element_compatible +// CHECK-NEXT: |-TemplateTypeParmDecl {{.*}} <> referenced typename depth 0 index 0 element_type +// CHECK-NEXT: `-BinaryOperator {{.*}} <> 'bool' lvalue '&&' +// CHECK-NEXT: |-UnaryOperator {{.*}} <> 'bool' lvalue prefix '!' cannot overflow +// CHECK-NEXT: | `-TypeTraitExpr {{.*}} <> 'bool' __builtin_hlsl_is_intangible +// CHECK-NEXT: | `-typeDetails: TemplateTypeParmType {{.*}} 'element_type' dependent depth 0 index 0 +// CHECK-NEXT: | `-TemplateTypeParm {{.*}} 'element_type' +// CHECK-NEXT: `-BinaryOperator {{.*}} <> 'bool' lvalue '>=' +// CHECK-NEXT: |-UnaryExprOrTypeTraitExpr {{.*}} <> 'bool' sizeof 'element_type' diff --git a/clang/test/AST/HLSL/is_typed_resource_element_compatible_concept.hlsl b/clang/test/AST/HLSL/is_typed_resource_element_compatible_concept.hlsl index 24a57624e2e9d..fda000ae8cfc5 100644 --- a/clang/test/AST/HLSL/is_typed_resource_element_compatible_concept.hlsl +++ b/clang/test/AST/HLSL/is_typed_resource_element_compatible_concept.hlsl @@ -1,9 +1,9 @@ // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.0-library -x hlsl -ast-dump -ast-dump-filter=__is_typed_resource_element_compatible %s | FileCheck %s -// CHECK: ConceptDecl {{.*}} __is_typed_resource_element_compatible -// CHECK: |-TemplateTypeParmDecl {{.*}} referenced typename depth 0 index 0 element_type -// CHECK: `-TypeTraitExpr {{.*}} 'bool' __builtin_hlsl_is_typed_resource_element_compatible -// CHECK: `-TemplateTypeParmType {{.*}} 'element_type' dependent depth 0 index 0 -// CHECK: `-TemplateTypeParm {{.*}} 'element_type' - RWBuffer Buffer; + +// CHECK: ConceptDecl {{.*}} <> __is_typed_resource_element_compatible +// CHECK-NEXT: |-TemplateTypeParmDecl {{.*}} <> referenced typename depth 0 index 0 element_type +// CHECK-NEXT: `-TypeTraitExpr {{.*}} <> 'bool' __builtin_hlsl_is_typed_resource_element_compatible +// CHECK-NEXT: `-typeDetails: TemplateTypeParmType {{.*}} 'element_type' dependent depth 0 index 0 +// CHECK-NEXT: `-TemplateTypeParm {{.*}} 'element_type' \ No newline at end of file diff --git a/clang/test/AST/HLSL/packoffset.hlsl b/clang/test/AST/HLSL/packoffset.hlsl index 4d18a9ca631f1..a4ee843b3a7c0 100644 --- a/clang/test/AST/HLSL/packoffset.hlsl +++ b/clang/test/AST/HLSL/packoffset.hlsl @@ -1,65 +1,148 @@ // RUN: %clang_cc1 -triple dxil-unknown-shadermodel6.3-library -S -finclude-default-header -fnative-half-type -ast-dump -x hlsl %s | FileCheck %s -// CHECK: HLSLBufferDecl {{.*}} cbuffer A cbuffer A { - // CHECK-NEXT:-HLSLResourceClassAttr {{.*}} Implicit CBuffer - // CHECK-NEXT: HLSLResourceBindingAttr {{.*}} Implicit "" "0" - // CHECK-NEXT: VarDecl {{.*}} A1 'hlsl_constant float4' - // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 0 0 float4 A1 : packoffset(c); - // CHECK-NEXT: VarDecl {{.*}} col:11 A2 'hlsl_constant float' - // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 1 0 float A2 : packoffset(c1); - // CHECK-NEXT: VarDecl {{.*}} col:11 A3 'hlsl_constant float' - // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 1 1 float A3 : packoffset(c1.y); } -// CHECK: HLSLBufferDecl {{.*}} cbuffer B +// CHECK: |-HLSLBufferDecl {{.*}} cbuffer A +// CHECK-NEXT: | |-attrDetails: HLSLResourceClassAttr {{.*}} <> Implicit CBuffer +// CHECK-NEXT: | |-attrDetails: HLSLResourceBindingAttr {{.*}} <> Implicit "" "0" +// CHECK-NEXT: | |-VarDecl {{.*}} A1 'hlsl_constant float4':'vector' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'hlsl_constant float4' hlsl_constant +// CHECK-NEXT: | | | `-typeDetails: ElaboratedType {{.*}} 'float4' sugar +// CHECK-NEXT: | | | `-typeDetails: TypedefType {{.*}} 'hlsl::float4' sugar +// CHECK-NEXT: | | | |-Typedef {{.*}} 'float4' +// CHECK-NEXT: | | | `-typeDetails: ElaboratedType {{.*}} 'vector' sugar +// CHECK-NEXT: | | | `-typeDetails: TemplateSpecializationType {{.*}} 'vector' sugar alias +// CHECK-NEXT: | | | |-name: 'vector':'hlsl::vector' qualified +// CHECK-NEXT: | | | | `-TypeAliasTemplateDecl {{.*}} <> implicit vector +// CHECK-NEXT: | | | |-TemplateArgument type 'float' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | | | |-TemplateArgument expr '4' +// CHECK-NEXT: | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | |-value: Int 4 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 4 +// CHECK-NEXT: | | | `-typeDetails: ExtVectorType {{.*}} 'vector' 4 +// CHECK-NEXT: | | | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'float' sugar class depth 0 index 0 element final +// CHECK-NEXT: | | | |-TypeAliasTemplate {{.*}} 'vector' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | | `-attrDetails: HLSLPackOffsetAttr {{.*}} 0 0 +// CHECK-NEXT: | |-VarDecl {{.*}} A2 'hlsl_constant float' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'hlsl_constant float' hlsl_constant +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | | `-attrDetails: HLSLPackOffsetAttr {{.*}} 1 0 +// CHECK-NEXT: | |-VarDecl {{.*}} A3 'hlsl_constant float' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'hlsl_constant float' hlsl_constant +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | | `-attrDetails: HLSLPackOffsetAttr {{.*}} 1 1 +// CHECK-NEXT: | `-CXXRecordDecl {{.*}} <> implicit struct __cblayout_A definition +// CHECK-NEXT: | |-DefinitionData pass_in_registers aggregate standard_layout trivially_copyable pod trivial literal +// CHECK-NEXT: | | |-DefaultConstructor exists trivial needs_implicit +// CHECK-NEXT: | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK-NEXT: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveAssignment exists simple trivial needs_implicit +// CHECK-NEXT: | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK-NEXT: | |-attrDetails: PackedAttr {{.*}} <> Implicit +// CHECK-NEXT: | |-FieldDecl {{.*}} <> A1 'vector' +// CHECK-NEXT: | |-FieldDecl {{.*}} <> A2 'float' +// CHECK-NEXT: | `-FieldDecl {{.*}} <> A3 'float' + cbuffer B { - // CHECK: VarDecl {{.*}} B0 'hlsl_constant float' - // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 0 1 - float B0 : packoffset(c0.g); - // CHECK-NEXT: VarDecl {{.*}} B1 'hlsl_constant double' - // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 0 2 + float B0 : packoffset(c0.g); double B1 : packoffset(c0.b); - // CHECK-NEXT: VarDecl {{.*}} B2 'hlsl_constant half' - // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 0 0 half B2 : packoffset(c0.r); } -// CHECK: HLSLBufferDecl {{.*}} cbuffer C +// CHECK: |-HLSLBufferDecl {{.*}} cbuffer B +// CHECK-NEXT: | |-attrDetails: HLSLResourceClassAttr {{.*}} <> Implicit CBuffer +// CHECK-NEXT: | |-attrDetails: HLSLResourceBindingAttr {{.*}} <> Implicit "" "0" +// CHECK-NEXT: | |-VarDecl {{.*}} B0 'hlsl_constant float' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'hlsl_constant float' hlsl_constant +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | | `-attrDetails: HLSLPackOffsetAttr {{.*}} 0 1 +// CHECK-NEXT: | |-VarDecl {{.*}} B1 'hlsl_constant double' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'hlsl_constant double' hlsl_constant +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'double' +// CHECK-NEXT: | | `-attrDetails: HLSLPackOffsetAttr {{.*}} 0 2 +// CHECK-NEXT: | |-VarDecl {{.*}} B2 'hlsl_constant half' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'hlsl_constant half' hlsl_constant +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'half' +// CHECK-NEXT: | | `-attrDetails: HLSLPackOffsetAttr {{.*}} 0 0 +// CHECK-NEXT: | `-CXXRecordDecl {{.*}} <> implicit struct __cblayout_B definition +// CHECK-NEXT: | |-DefinitionData pass_in_registers aggregate standard_layout trivially_copyable pod trivial literal +// CHECK-NEXT: | | |-DefaultConstructor exists trivial needs_implicit +// CHECK-NEXT: | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK-NEXT: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveAssignment exists simple trivial needs_implicit +// CHECK-NEXT: | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK-NEXT: | |-attrDetails: PackedAttr {{.*}} <> Implicit +// CHECK-NEXT: | |-FieldDecl {{.*}} <> B0 'float' +// CHECK-NEXT: | |-FieldDecl {{.*}} <> B1 'double' +// CHECK-NEXT: | `-FieldDecl {{.*}} <> B2 'half' + cbuffer C { - // CHECK: VarDecl {{.*}} C0 'hlsl_constant float' - // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 1 - float C0 : packoffset(c0.y); - // CHECK-NEXT: VarDecl {{.*}} C1 'hlsl_constant float2' - // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 2 + float C0 : packoffset(c0.y); float2 C1 : packoffset(c0.z); - // CHECK-NEXT: VarDecl {{.*}} C2 'hlsl_constant half' - // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 0 half C2 : packoffset(c0.x); } +// CHECK: |-HLSLBufferDecl {{.*}} cbuffer C +// CHECK-NEXT: | |-attrDetails: HLSLResourceClassAttr {{.*}} <> Implicit CBuffer +// CHECK-NEXT: | |-attrDetails: HLSLResourceBindingAttr {{.*}} <> Implicit "" "0" +// CHECK-NEXT: | |-VarDecl {{.*}} C0 'hlsl_constant float' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'hlsl_constant float' hlsl_constant +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | | `-attrDetails: HLSLPackOffsetAttr {{.*}} 0 1 +// CHECK-NEXT: | |-VarDecl {{.*}} C1 'hlsl_constant float2':'vector' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'hlsl_constant float2' hlsl_constant +// CHECK-NEXT: | | | `-typeDetails: ElaboratedType {{.*}} 'float2' sugar +// CHECK-NEXT: | | | `-typeDetails: TypedefType {{.*}} 'hlsl::float2' sugar +// CHECK-NEXT: | | | |-Typedef {{.*}} 'float2' +// CHECK-NEXT: | | | `-typeDetails: ElaboratedType {{.*}} 'vector' sugar +// CHECK-NEXT: | | | `-typeDetails: TemplateSpecializationType {{.*}} 'vector' sugar alias +// CHECK-NEXT: | | | |-name: 'vector':'hlsl::vector' qualified +// CHECK-NEXT: | | | | `-TypeAliasTemplateDecl {{.*}} <> implicit vector +// CHECK-NEXT: | | | |-TemplateArgument type 'float' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | | | |-TemplateArgument expr '2' +// CHECK-NEXT: | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | |-value: Int 2 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | | | `-typeDetails: ExtVectorType {{.*}} 'vector' 2 +// CHECK-NEXT: | | | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'float' sugar class depth 0 index 0 element final +// CHECK-NEXT: | | | |-TypeAliasTemplate {{.*}} 'vector' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | | `-attrDetails: HLSLPackOffsetAttr {{.*}} 0 2 +// CHECK-NEXT: | |-VarDecl {{.*}} C2 'hlsl_constant half' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'hlsl_constant half' hlsl_constant +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'half' +// CHECK-NEXT: | | `-attrDetails: HLSLPackOffsetAttr {{.*}} 0 0 +// CHECK-NEXT: | `-CXXRecordDecl {{.*}} <> implicit struct __cblayout_C definition +// CHECK-NEXT: | |-DefinitionData pass_in_registers aggregate standard_layout trivially_copyable pod trivial literal +// CHECK-NEXT: | | |-DefaultConstructor exists trivial needs_implicit +// CHECK-NEXT: | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK-NEXT: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveAssignment exists simple trivial needs_implicit +// CHECK-NEXT: | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK-NEXT: | |-attrDetails: PackedAttr {{.*}} <> Implicit +// CHECK-NEXT: | |-FieldDecl {{.*}} <> C0 'float' +// CHECK-NEXT: | |-FieldDecl {{.*}} <> C1 'vector' +// CHECK-NEXT: | `-FieldDecl {{.*}} <> C2 'half' -// CHECK: HLSLBufferDecl {{.*}} cbuffer D cbuffer D { - // CHECK: VarDecl {{.*}} D0 'hlsl_constant float' - // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 0 1 - float D0 : packoffset(c0.y); - // CHECK-NEXT: VarDecl {{.*}} D1 'hlsl_constant float[2]' - // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 1 0 + float D0 : packoffset(c0.y); float D1[2] : packoffset(c1.x); - // CHECK-NEXT: VarDecl {{.*}} D2 'hlsl_constant half3' - // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 2 1 half3 D2 : packoffset(c2.y); - // CHECK-NEXT: VarDecl {{.*}} D3 'hlsl_constant double' - // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 0 2 double D3 : packoffset(c0.z); } @@ -69,16 +152,88 @@ struct ST { half c; }; -// CHECK: HLSLBufferDecl {{.*}} cbuffer S +// CHECK: |-HLSLBufferDecl {{.*}} cbuffer D +// CHECK-NEXT: | |-attrDetails: HLSLResourceClassAttr {{.*}} <> Implicit CBuffer +// CHECK-NEXT: | |-attrDetails: HLSLResourceBindingAttr {{.*}} <> Implicit "" "0" +// CHECK-NEXT: | |-VarDecl {{.*}} D0 'hlsl_constant float' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'hlsl_constant float' hlsl_constant +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | | `-attrDetails: HLSLPackOffsetAttr {{.*}} 0 1 +// CHECK-NEXT: | |-VarDecl {{.*}} D1 'hlsl_constant float[2]' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'hlsl_constant float[2]' hlsl_constant +// CHECK-NEXT: | | | `-typeDetails: ConstantArrayType {{.*}} 'float[2]' 2 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | | `-attrDetails: HLSLPackOffsetAttr {{.*}} 1 0 +// CHECK-NEXT: | |-VarDecl {{.*}} D2 'hlsl_constant half3':'vector' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'hlsl_constant half3' hlsl_constant +// CHECK-NEXT: | | | `-typeDetails: ElaboratedType {{.*}} 'half3' sugar +// CHECK-NEXT: | | | `-typeDetails: TypedefType {{.*}} 'hlsl::half3' sugar +// CHECK-NEXT: | | | |-Typedef {{.*}} 'half3' +// CHECK-NEXT: | | | `-typeDetails: ElaboratedType {{.*}} 'vector' sugar +// CHECK-NEXT: | | | `-typeDetails: TemplateSpecializationType {{.*}} 'vector' sugar alias +// CHECK-NEXT: | | | |-name: 'vector':'hlsl::vector' qualified +// CHECK-NEXT: | | | | `-TypeAliasTemplateDecl {{.*}} <> implicit vector +// CHECK-NEXT: | | | |-TemplateArgument type 'half' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'half' +// CHECK-NEXT: | | | |-TemplateArgument expr '3' +// CHECK-NEXT: | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | |-value: Int 3 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 3 +// CHECK-NEXT: | | | `-typeDetails: ExtVectorType {{.*}} 'vector' 3 +// CHECK-NEXT: | | | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'half' sugar class depth 0 index 0 element final +// CHECK-NEXT: | | | |-TypeAliasTemplate {{.*}} 'vector' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'half' +// CHECK-NEXT: | | `-attrDetails: HLSLPackOffsetAttr {{.*}} 2 1 +// CHECK-NEXT: | |-VarDecl {{.*}} D3 'hlsl_constant double' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'hlsl_constant double' hlsl_constant +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'double' +// CHECK-NEXT: | | `-attrDetails: HLSLPackOffsetAttr {{.*}} 0 2 +// CHECK-NEXT: | `-CXXRecordDecl {{.*}} <> implicit struct __cblayout_D definition +// CHECK-NEXT: | |-DefinitionData pass_in_registers aggregate standard_layout trivially_copyable pod trivial literal +// CHECK-NEXT: | | |-DefaultConstructor exists trivial needs_implicit +// CHECK-NEXT: | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK-NEXT: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveAssignment exists simple trivial needs_implicit +// CHECK-NEXT: | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK-NEXT: | |-attrDetails: PackedAttr {{.*}} <> Implicit +// CHECK-NEXT: | |-FieldDecl {{.*}} <> D0 'float' +// CHECK-NEXT: | |-FieldDecl {{.*}} <> D1 'float[2]' +// CHECK-NEXT: | |-FieldDecl {{.*}} <> D2 'vector' +// CHECK-NEXT: | `-FieldDecl {{.*}} <> D3 'double' +// CHECK-NEXT: |-CXXRecordDecl {{.*}} referenced struct ST definition +// CHECK-NEXT: | |-DefinitionData pass_in_registers aggregate standard_layout trivially_copyable pod trivial literal +// CHECK-NEXT: | | |-DefaultConstructor exists trivial +// CHECK-NEXT: | | |-CopyConstructor simple trivial has_const_param implicit_has_const_param +// CHECK-NEXT: | | |-MoveConstructor exists simple trivial +// CHECK-NEXT: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveAssignment exists simple trivial needs_implicit +// CHECK-NEXT: | | `-Destructor simple irrelevant trivial +// CHECK-NEXT: | |-attrDetails: PackedAttr {{.*}} <> Implicit +// CHECK-NEXT: | |-CXXRecordDecl {{.*}} implicit struct ST +// CHECK-NEXT: | |-FieldDecl {{.*}} a 'float' +// CHECK-NEXT: | |-FieldDecl {{.*}} b 'float2':'vector' +// CHECK-NEXT: | |-FieldDecl {{.*}} c 'half' +// CHECK-NEXT: | |-CXXConstructorDecl {{.*}} implicit used ST 'void () noexcept' inline default trivial +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | |-CXXConstructorDecl {{.*}} implicit constexpr ST 'void (const ST &)' inline default trivial noexcept-unevaluated {{.*}} +// CHECK-NEXT: | | `-ParmVarDecl {{.*}} 'const ST &' +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType {{.*}} 'const ST &' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const ST' const +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'ST' sugar +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'ST' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'ST' +// CHECK-NEXT: | |-CXXConstructorDecl {{.*}} implicit constexpr ST 'void (ST &&)' inline default trivial noexcept-unevaluated {{.*}} +// CHECK-NEXT: | | `-ParmVarDecl {{.*}} 'ST &&' +// CHECK-NEXT: | | `-typeDetails: RValueReferenceType {{.*}} 'ST &&' +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'ST' sugar +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'ST' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'ST' +// CHECK-NEXT: | `-CXXDestructorDecl {{.*}} implicit ~ST 'void ()' inline default trivial noexcept-unevaluated {{.*}} + cbuffer S { - // CHECK: VarDecl {{.*}} S0 'hlsl_constant float' - // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 0 1 float S0 : packoffset(c0.y); - // CHECK: VarDecl {{.*}} S1 'hlsl_constant ST' - // CHECK: HLSLPackOffsetAttr {{.*}} 1 0 ST S1 : packoffset(c1); - // CHECK: VarDecl {{.*}} S2 'hlsl_constant double2' - // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 2 0 double2 S2 : packoffset(c2); } @@ -88,15 +243,116 @@ struct ST2 { half s2; }; -// CHECK: HLSLBufferDecl {{.*}} cbuffer S2 +// CHECK: |-HLSLBufferDecl {{.*}} cbuffer S +// CHECK-NEXT: | |-attrDetails: HLSLResourceClassAttr {{.*}} <> Implicit CBuffer +// CHECK-NEXT: | |-attrDetails: HLSLResourceBindingAttr {{.*}} <> Implicit "" "0" +// CHECK-NEXT: | |-VarDecl {{.*}} S0 'hlsl_constant float' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'hlsl_constant float' hlsl_constant +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | | `-attrDetails: HLSLPackOffsetAttr {{.*}} 0 1 +// CHECK-NEXT: | |-VarDecl {{.*}} S1 'hlsl_constant ST' callinit +// CHECK-NEXT: | | |-CXXConstructExpr {{.*}} 'ST' 'void () noexcept' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'hlsl_constant ST' hlsl_constant +// CHECK-NEXT: | | | `-typeDetails: ElaboratedType {{.*}} 'ST' sugar +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'ST' +// CHECK-NEXT: | | | `-CXXRecord {{.*}} 'ST' +// CHECK-NEXT: | | `-attrDetails: HLSLPackOffsetAttr {{.*}} 1 0 +// CHECK-NEXT: | |-VarDecl {{.*}} S2 'hlsl_constant double2':'vector' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'hlsl_constant double2' hlsl_constant +// CHECK-NEXT: | | | `-typeDetails: ElaboratedType {{.*}} 'double2' sugar +// CHECK-NEXT: | | | `-typeDetails: TypedefType {{.*}} 'hlsl::double2' sugar +// CHECK-NEXT: | | | |-Typedef {{.*}} 'double2' +// CHECK-NEXT: | | | `-typeDetails: ElaboratedType {{.*}} 'vector' sugar +// CHECK-NEXT: | | | `-typeDetails: TemplateSpecializationType {{.*}} 'vector' sugar alias +// CHECK-NEXT: | | | |-name: 'vector':'hlsl::vector' qualified +// CHECK-NEXT: | | | | `-TypeAliasTemplateDecl {{.*}} <> implicit vector +// CHECK-NEXT: | | | |-TemplateArgument type 'double' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'double' +// CHECK-NEXT: | | | |-TemplateArgument expr '2' +// CHECK-NEXT: | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | |-value: Int 2 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | | | `-typeDetails: ExtVectorType {{.*}} 'vector' 2 +// CHECK-NEXT: | | | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'double' sugar class depth 0 index 0 element final +// CHECK-NEXT: | | | |-TypeAliasTemplate {{.*}} 'vector' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'double' +// CHECK-NEXT: | | `-attrDetails: HLSLPackOffsetAttr {{.*}} 2 0 +// CHECK-NEXT: | `-CXXRecordDecl {{.*}} <> implicit struct __cblayout_S definition +// CHECK-NEXT: | |-DefinitionData pass_in_registers aggregate standard_layout trivially_copyable pod trivial literal +// CHECK-NEXT: | | |-DefaultConstructor exists trivial needs_implicit +// CHECK-NEXT: | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK-NEXT: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveAssignment exists simple trivial needs_implicit +// CHECK-NEXT: | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK-NEXT: | |-attrDetails: PackedAttr {{.*}} <> Implicit +// CHECK-NEXT: | |-FieldDecl {{.*}} <> S0 'float' +// CHECK-NEXT: | |-FieldDecl {{.*}} <> S1 'ST' +// CHECK-NEXT: | `-FieldDecl {{.*}} <> S2 'vector' +// CHECK-NEXT: |-CXXRecordDecl {{.*}} referenced struct ST2 definition +// CHECK-NEXT: | |-DefinitionData pass_in_registers aggregate standard_layout trivially_copyable pod trivial literal +// CHECK-NEXT: | | |-DefaultConstructor exists trivial +// CHECK-NEXT: | | |-CopyConstructor simple trivial has_const_param implicit_has_const_param +// CHECK-NEXT: | | |-MoveConstructor exists simple trivial +// CHECK-NEXT: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveAssignment exists simple trivial needs_implicit +// CHECK-NEXT: | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK-NEXT: | |-attrDetails: PackedAttr {{.*}} <> Implicit +// CHECK-NEXT: | |-CXXRecordDecl {{.*}} implicit struct ST2 +// CHECK-NEXT: | |-FieldDecl {{.*}} s0 'float' +// CHECK-NEXT: | |-FieldDecl {{.*}} s1 'ST' +// CHECK-NEXT: | |-FieldDecl {{.*}} s2 'half' +// CHECK-NEXT: | |-CXXConstructorDecl {{.*}} implicit used ST2 'void () noexcept' inline default trivial +// CHECK-NEXT: | | |-CXXCtorInitializer Field {{.*}} 's1' 'ST' +// CHECK-NEXT: | | | `-CXXConstructExpr {{.*}} 'ST' 'void () noexcept' +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | |-CXXConstructorDecl {{.*}} implicit constexpr ST2 'void (const ST2 &)' inline default trivial noexcept-unevaluated {{.*}} +// CHECK-NEXT: | | `-ParmVarDecl {{.*}} 'const ST2 &' +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType {{.*}} 'const ST2 &' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const ST2' const +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'ST2' sugar +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'ST2' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'ST2' +// CHECK-NEXT: | `-CXXConstructorDecl {{.*}} implicit constexpr ST2 'void (ST2 &&)' inline default trivial noexcept-unevaluated {{.*}} +// CHECK-NEXT: | `-ParmVarDecl {{.*}} 'ST2 &&' +// CHECK-NEXT: | `-typeDetails: RValueReferenceType {{.*}} 'ST2 &&' +// CHECK-NEXT: | `-typeDetails: ElaboratedType {{.*}} 'ST2' sugar +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'ST2' +// CHECK-NEXT: | `-CXXRecord {{.*}} 'ST2' + cbuffer S2 { - // CHECK: VarDecl {{.*}} S20 'hlsl_constant float' - // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 0 3 float S20 : packoffset(c0.a); - // CHECK: VarDecl {{.*}} S21 'hlsl_constant ST2' - // CHECK: HLSLPackOffsetAttr {{.*}} 1 0 ST2 S21 : packoffset(c1); - // CHECK: VarDecl {{.*}} S22 'hlsl_constant half' - // CHECK-NEXT: HLSLPackOffsetAttr {{.*}} 3 1 half S22 : packoffset(c3.y); } + +// CHECK: `-HLSLBufferDecl {{.*}} cbuffer S2 +// CHECK-NEXT: |-attrDetails: HLSLResourceClassAttr {{.*}} <> Implicit CBuffer +// CHECK-NEXT: |-attrDetails: HLSLResourceBindingAttr {{.*}} <> Implicit "" "0" +// CHECK-NEXT: |-VarDecl {{.*}} S20 'hlsl_constant float' +// CHECK-NEXT: | |-qualTypeDetail: QualType {{.*}} 'hlsl_constant float' hlsl_constant +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | `-attrDetails: HLSLPackOffsetAttr {{.*}} 0 3 +// CHECK-NEXT: |-VarDecl {{.*}} S21 'hlsl_constant ST2' callinit +// CHECK-NEXT: | |-CXXConstructExpr {{.*}} 'ST2' 'void () noexcept' +// CHECK-NEXT: | |-qualTypeDetail: QualType {{.*}} 'hlsl_constant ST2' hlsl_constant +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'ST2' sugar +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'ST2' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'ST2' +// CHECK-NEXT: | `-attrDetails: HLSLPackOffsetAttr {{.*}} 1 0 +// CHECK-NEXT: |-VarDecl {{.*}} S22 'hlsl_constant half' +// CHECK-NEXT: | |-qualTypeDetail: QualType {{.*}} 'hlsl_constant half' hlsl_constant +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'half' +// CHECK-NEXT: | `-attrDetails: HLSLPackOffsetAttr {{.*}} 3 1 +// CHECK-NEXT: `-CXXRecordDecl {{.*}} <> implicit struct __cblayout_S2 definition +// CHECK-NEXT: |-DefinitionData pass_in_registers aggregate standard_layout trivially_copyable pod trivial literal +// CHECK-NEXT: | |-DefaultConstructor exists trivial needs_implicit +// CHECK-NEXT: | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | |-MoveConstructor exists simple trivial needs_implicit +// CHECK-NEXT: | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | |-MoveAssignment exists simple trivial needs_implicit +// CHECK-NEXT: | `-Destructor simple irrelevant trivial needs_implicit +// CHECK-NEXT: |-attrDetails: PackedAttr {{.*}} <> Implicit +// CHECK-NEXT: |-FieldDecl {{.*}} <> S20 'float' +// CHECK-NEXT: |-FieldDecl {{.*}} <> S21 'ST2' +// CHECK-NEXT: `-FieldDecl {{.*}} <> S22 'half' \ No newline at end of file diff --git a/clang/test/AST/HLSL/pch_hlsl_buffer.hlsl b/clang/test/AST/HLSL/pch_hlsl_buffer.hlsl index 99c015eadb576..00e59d83c5001 100644 --- a/clang/test/AST/HLSL/pch_hlsl_buffer.hlsl +++ b/clang/test/AST/HLSL/pch_hlsl_buffer.hlsl @@ -15,24 +15,24 @@ float foo() { // Make sure cbuffer/tbuffer works for PCH. // CHECK: HLSLBufferDecl {{.*}} line:{{[0-9]+}}:9 imported cbuffer A -// CHECK-NEXT: HLSLResourceClassAttr {{.*}} Implicit CBuffer -// CHECK-NEXT: HLSLResourceBindingAttr {{.*}} Implicit "" "0" -// CHECK-NEXT: VarDecl 0x[[A:[0-9a-f]+]] {{.*}} imported used a 'hlsl_constant float' -// CHECK-NEXT: CXXRecordDecl {{.*}} imported implicit struct __cblayout_A definition +// CHECK: HLSLResourceClassAttr {{.*}} Implicit CBuffer +// CHECK: HLSLResourceBindingAttr {{.*}} Implicit "" "0" +// CHECK: VarDecl 0x[[A:[0-9a-f]+]] {{.*}} imported used a 'hlsl_constant float' +// CHECK: CXXRecordDecl {{.*}} imported implicit struct __cblayout_A definition // CHECK: FieldDecl {{.*}} imported a 'float' // CHECK: HLSLBufferDecl {{.*}} line:{{[0-9]+}}:9 imported tbuffer B -// CHECK-NEXT: HLSLResourceClassAttr {{.*}} Implicit SRV -// CHECK-NEXT: HLSLResourceBindingAttr {{.*}} Implicit "" "0" -// CHECK-NEXT: VarDecl 0x[[B:[0-9a-f]+]] {{.*}} imported used b 'hlsl_constant float' -// CHECK-NEXT: CXXRecordDecl 0x{{[0-9a-f]+}} {{.*}} imported implicit struct __cblayout_B definition +// CHECK: HLSLResourceClassAttr {{.*}} Implicit SRV +// CHECK: HLSLResourceBindingAttr {{.*}} Implicit "" "0" +// CHECK: VarDecl 0x[[B:[0-9a-f]+]] {{.*}} imported used b 'hlsl_constant float' +// CHECK: CXXRecordDecl 0x{{[0-9a-f]+}} {{.*}} imported implicit struct __cblayout_B definition // CHECK: FieldDecl 0x{{[0-9a-f]+}} {{.*}} imported b 'float' -// CHECK-NEXT: FunctionDecl {{.*}} line:{{[0-9]+}}:7 imported foo 'float ()' -// CHECK-NEXT: CompoundStmt {{.*}} -// CHECK-NEXT: ReturnStmt {{.*}} -// CHECK-NEXT: BinaryOperator {{.*}} 'float' '+' -// CHECK-NEXT: ImplicitCastExpr {{.*}} 'float' -// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl_constant float' lvalue Var 0x[[A]] 'a' 'hlsl_constant float' -// CHECK-NEXT: ImplicitCastExpr {{.*}} 'float' -// CHECK-NEXT: DeclRefExpr {{.*}} 'hlsl_constant float' lvalue Var 0x[[B]] 'b' 'hlsl_constant float' +// CHECK: FunctionDecl {{.*}} line:{{[0-9]+}}:7 imported foo 'float ()' +// CHECK: CompoundStmt {{.*}} +// CHECK: ReturnStmt {{.*}} +// CHECK: BinaryOperator {{.*}} 'float' '+' +// CHECK: ImplicitCastExpr {{.*}} 'float' +// CHECK: DeclRefExpr {{.*}} 'hlsl_constant float' lvalue Var 0x[[A]] 'a' 'hlsl_constant float' +// CHECK: ImplicitCastExpr {{.*}} 'float' +// CHECK: DeclRefExpr {{.*}} 'hlsl_constant float' lvalue Var 0x[[B]] 'b' 'hlsl_constant float' \ No newline at end of file diff --git a/clang/test/AST/HLSL/resource_binding_attr.hlsl b/clang/test/AST/HLSL/resource_binding_attr.hlsl index c073cd4dc1476..a655d70c7fbed 100644 --- a/clang/test/AST/HLSL/resource_binding_attr.hlsl +++ b/clang/test/AST/HLSL/resource_binding_attr.hlsl @@ -1,58 +1,231 @@ // RUN: %clang_cc1 -triple dxil-pc-shadermodel6.3-library -finclude-default-header -ast-dump -o - %s | FileCheck %s -// CHECK: HLSLBufferDecl {{.*}} line:[[# @LINE + 4]]:9 cbuffer CB -// CHECK-NEXT: HLSLResourceClassAttr {{.*}} Implicit CBuffer -// CHECK-NEXT: HLSLResourceBindingAttr {{.*}} "b3" "space2" -// CHECK-NEXT: VarDecl {{.*}} used a 'hlsl_constant float' cbuffer CB : register(b3, space2) { float a; } -// CHECK: HLSLBufferDecl {{.*}} line:[[# @LINE + 4]]:9 tbuffer TB -// CHECK-NEXT: HLSLResourceClassAttr {{.*}} Implicit SRV -// CHECK-NEXT: HLSLResourceBindingAttr {{.*}} "t2" "space1" -// CHECK-NEXT: VarDecl {{.*}} used b 'hlsl_constant float' +// CHECK: |-HLSLBufferDecl {{.*}} cbuffer CB +// CHECK-NEXT: | |-attrDetails: HLSLResourceClassAttr {{.*}} <> Implicit CBuffer +// CHECK-NEXT: | |-attrDetails: HLSLResourceBindingAttr {{.*}} "b3" "space2" +// CHECK-NEXT: | |-VarDecl {{.*}} used a 'hlsl_constant float' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'hlsl_constant float' hlsl_constant +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | `-CXXRecordDecl {{.*}} <> implicit struct __cblayout_CB definition +// CHECK-NEXT: | |-DefinitionData pass_in_registers aggregate standard_layout trivially_copyable pod trivial literal +// CHECK-NEXT: | | |-DefaultConstructor exists trivial needs_implicit +// CHECK-NEXT: | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK-NEXT: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveAssignment exists simple trivial needs_implicit +// CHECK-NEXT: | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK-NEXT: | |-attrDetails: PackedAttr {{.*}} <> Implicit +// CHECK-NEXT: | `-FieldDecl {{.*}} <> a 'float' + tbuffer TB : register(t2, space1) { float b; } +// CHECK: |-HLSLBufferDecl {{.*}} tbuffer TB +// CHECK-NEXT: | |-attrDetails: HLSLResourceClassAttr {{.*}} <> Implicit SRV +// CHECK-NEXT: | |-attrDetails: HLSLResourceBindingAttr {{.*}} "t2" "space1" +// CHECK-NEXT: | |-VarDecl {{.*}} used b 'hlsl_constant float' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'hlsl_constant float' hlsl_constant +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | `-CXXRecordDecl {{.*}} <> implicit struct __cblayout_TB definition +// CHECK-NEXT: | |-DefinitionData pass_in_registers aggregate standard_layout trivially_copyable pod trivial literal +// CHECK-NEXT: | | |-DefaultConstructor exists trivial needs_implicit +// CHECK-NEXT: | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK-NEXT: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveAssignment exists simple trivial needs_implicit +// CHECK-NEXT: | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK-NEXT: | |-attrDetails: PackedAttr {{.*}} <> Implicit +// CHECK-NEXT: | `-FieldDecl {{.*}} <> b 'float' + export float foo() { return a + b; } -// CHECK: VarDecl {{.*}} UAV 'RWBuffer':'hlsl::RWBuffer' -// CHECK: HLSLResourceBindingAttr {{.*}} "u3" "space0" +// CHECK: |-ExportDecl {{.*}} +// CHECK-NEXT: | `-FunctionDecl {{.*}} used foo 'float ()' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-ReturnStmt {{.*}} +// CHECK-NEXT: | `-BinaryOperator {{.*}} 'float' '+' +// CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'float' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'hlsl_constant float' lvalue Var {{.*}} 'a' 'hlsl_constant float' +// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'float' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'hlsl_constant float' lvalue Var {{.*}} 'b' 'hlsl_constant float' +// CHECK-NEXT: |-LinkageSpecDecl {{.*}} <> implicit C +// CHECK-NEXT: | `-FunctionDecl {{.*}} <> implicit __builtin_hlsl_resource_uninitializedhandle 'void (...) noexcept' extern +// CHECK-NEXT: | |-attrDetails: BuiltinAttr {{.*}} <> Implicit 708 +// CHECK-NEXT: | `-attrDetails: NoThrowAttr {{.*}} <> Implicit +// CHECK-NEXT: |-LinkageSpecDecl {{.*}} <> implicit C +// CHECK-NEXT: | `-FunctionDecl {{.*}} <> implicit used __builtin_hlsl_resource_handlefrombinding 'void (...) noexcept' extern +// CHECK-NEXT: | |-attrDetails: BuiltinAttr {{.*}} <> Implicit 706 +// CHECK-NEXT: | `-attrDetails: NoThrowAttr {{.*}} <> Implicit +// CHECK-NEXT: |-LinkageSpecDecl {{.*}} <> implicit C +// CHECK-NEXT: | `-FunctionDecl {{.*}} <> implicit used __builtin_hlsl_resource_handlefromimplicitbinding 'void (...) noexcept' extern +// CHECK-NEXT: | |-attrDetails: BuiltinAttr {{.*}} <> Implicit 707 +// CHECK-NEXT: | `-attrDetails: NoThrowAttr {{.*}} <> Implicit +// CHECK-NEXT: |-LinkageSpecDecl {{.*}} <> implicit C +// CHECK-NEXT: | `-FunctionDecl {{.*}} <> implicit __builtin_hlsl_resource_getpointer 'void (...) noexcept' extern +// CHECK-NEXT: | |-attrDetails: BuiltinAttr {{.*}} <> Implicit 705 +// CHECK-NEXT: | `-attrDetails: NoThrowAttr {{.*}} <> Implicit + RWBuffer UAV : register(u3); -// CHECK: VarDecl {{.*}} UAV1 'RWBuffer':'hlsl::RWBuffer' -// CHECK: HLSLResourceBindingAttr {{.*}} "u2" "space0" -// CHECK: VarDecl {{.*}} UAV2 'RWBuffer':'hlsl::RWBuffer' -// CHECK: HLSLResourceBindingAttr {{.*}} "u4" "space0" +// CHECK: |-VarDecl {{.*}} UAV 'RWBuffer':'hlsl::RWBuffer' static callinit +// CHECK-NEXT: | |-CXXConstructExpr {{.*}} 'RWBuffer':'hlsl::RWBuffer' 'void (unsigned int, unsigned int, int, unsigned int, const char *)' +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <> 'unsigned int' 3 +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <> 'unsigned int' 0 +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <> 'unsigned int' 0 +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} <> 'const char *' +// CHECK-NEXT: | | `-StringLiteral {{.*}} <> 'const char[4]' lvalue "UAV" +// CHECK-NEXT: | |-typeDetails: ElaboratedType {{.*}} 'RWBuffer' sugar +// CHECK-NEXT: | | `-typeDetails: TemplateSpecializationType {{.*}} 'RWBuffer' sugar +// CHECK-NEXT: | | |-name: 'RWBuffer':'hlsl::RWBuffer' qualified +// CHECK-NEXT: | | | `-ClassTemplateDecl {{.*}} <> implicit RWBuffer +// CHECK-NEXT: | | |-TemplateArgument type 'float' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'hlsl::RWBuffer' +// CHECK-NEXT: | | `-ClassTemplateSpecialization {{.*}} 'RWBuffer' +// CHECK-NEXT: | `-attrDetails: HLSLResourceBindingAttr {{.*}} "u3" "space0" + RWBuffer UAV1 : register(u2), UAV2 : register(u4); -// CHECK: VarDecl {{.*}} UAV3 'RWBuffer':'hlsl::RWBuffer' -// CHECK: HLSLResourceBindingAttr {{.*}} "" "space5" +// CHECK: |-VarDecl {{.*}} UAV1 'RWBuffer':'hlsl::RWBuffer' static callinit +// CHECK-NEXT: | |-CXXConstructExpr {{.*}} 'RWBuffer':'hlsl::RWBuffer' 'void (unsigned int, unsigned int, int, unsigned int, const char *)' +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <> 'unsigned int' 2 +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <> 'unsigned int' 0 +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <> 'unsigned int' 0 +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} <> 'const char *' +// CHECK-NEXT: | | `-StringLiteral {{.*}} <> 'const char[5]' lvalue "UAV1" +// CHECK-NEXT: | |-typeDetails: ElaboratedType {{.*}} 'RWBuffer' sugar +// CHECK-NEXT: | | `-typeDetails: TemplateSpecializationType {{.*}} 'RWBuffer' sugar +// CHECK-NEXT: | | |-name: 'RWBuffer':'hlsl::RWBuffer' qualified +// CHECK-NEXT: | | | `-ClassTemplateDecl {{.*}} <> implicit RWBuffer +// CHECK-NEXT: | | |-TemplateArgument type 'float' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'hlsl::RWBuffer' +// CHECK-NEXT: | | `-ClassTemplateSpecialization {{.*}} 'RWBuffer' +// CHECK-NEXT: | `-attrDetails: HLSLResourceBindingAttr {{.*}} "u2" "space0" +// CHECK-NEXT: |-VarDecl {{.*}} UAV2 'RWBuffer':'hlsl::RWBuffer' static callinit +// CHECK-NEXT: | |-CXXConstructExpr {{.*}} 'RWBuffer':'hlsl::RWBuffer' 'void (unsigned int, unsigned int, int, unsigned int, const char *)' +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <> 'unsigned int' 4 +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <> 'unsigned int' 0 +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <> 'unsigned int' 0 +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} <> 'const char *' +// CHECK-NEXT: | | `-StringLiteral {{.*}} <> 'const char[5]' lvalue "UAV2" +// CHECK-NEXT: | |-typeDetails: ElaboratedType {{.*}} 'RWBuffer' sugar +// CHECK-NEXT: | | `-typeDetails: TemplateSpecializationType {{.*}} 'RWBuffer' sugar +// CHECK-NEXT: | | |-name: 'RWBuffer':'hlsl::RWBuffer' qualified +// CHECK-NEXT: | | | `-ClassTemplateDecl {{.*}} <> implicit RWBuffer +// CHECK-NEXT: | | |-TemplateArgument type 'float' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'hlsl::RWBuffer' +// CHECK-NEXT: | | `-ClassTemplateSpecialization {{.*}} 'RWBuffer' +// CHECK-NEXT: | `-attrDetails: HLSLResourceBindingAttr {{.*}} "u4" "space0" + RWBuffer UAV3 : register(space5); +// CHECK: |-VarDecl {{.*}} UAV3 'RWBuffer':'hlsl::RWBuffer' static callinit +// CHECK-NEXT: | |-CXXConstructExpr {{.*}} 'RWBuffer':'hlsl::RWBuffer' 'void (unsigned int, int, unsigned int, unsigned int, const char *)' +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <> 'unsigned int' 5 +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <> 'unsigned int' 0 +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <> 'unsigned int' 0 +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} <> 'const char *' +// CHECK-NEXT: | | `-StringLiteral {{.*}} <> 'const char[5]' lvalue "UAV3" +// CHECK-NEXT: | |-typeDetails: ElaboratedType {{.*}} 'RWBuffer' sugar +// CHECK-NEXT: | | `-typeDetails: TemplateSpecializationType {{.*}} 'RWBuffer' sugar +// CHECK-NEXT: | | |-name: 'RWBuffer':'hlsl::RWBuffer' qualified +// CHECK-NEXT: | | | `-ClassTemplateDecl {{.*}} <> implicit RWBuffer +// CHECK-NEXT: | | |-TemplateArgument type 'float' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'hlsl::RWBuffer' +// CHECK-NEXT: | | `-ClassTemplateSpecialization {{.*}} 'RWBuffer' +// CHECK-NEXT: | `-attrDetails: HLSLResourceBindingAttr {{.*}} "" "space5" + // // Default constants ($Globals) layout annotations -// CHECK: VarDecl {{.*}} f 'hlsl_constant float' -// CHECK: HLSLResourceBindingAttr {{.*}} "c5" "space0" float f : register(c5); -// CHECK: VarDecl {{.*}} intv 'hlsl_constant int4':'vector' -// CHECK: HLSLResourceBindingAttr {{.*}} "c2" "space0" +// CHECK: |-VarDecl {{.*}} f 'hlsl_constant float' +// CHECK-NEXT: | |-qualTypeDetail: QualType {{.*}} 'hlsl_constant float' hlsl_constant +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | `-attrDetails: HLSLResourceBindingAttr {{.*}} "c5" "space0" + int4 intv : register(c2); -// CHECK: VarDecl {{.*}} dar 'hlsl_constant double[5]' -// CHECK: HLSLResourceBindingAttr {{.*}} "c3" "space0" +// CHECK: |-VarDecl {{.*}} intv 'hlsl_constant int4':'vector' +// CHECK-NEXT: | |-qualTypeDetail: QualType {{.*}} 'hlsl_constant int4' hlsl_constant +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'int4' sugar +// CHECK-NEXT: | | `-typeDetails: TypedefType {{.*}} 'hlsl::int4' sugar +// CHECK-NEXT: | | |-Typedef {{.*}} 'int4' +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'vector' sugar +// CHECK-NEXT: | | `-typeDetails: TemplateSpecializationType {{.*}} 'vector' sugar alias +// CHECK-NEXT: | | |-name: 'vector':'hlsl::vector' qualified +// CHECK-NEXT: | | | `-TypeAliasTemplateDecl {{.*}} <> implicit vector +// CHECK-NEXT: | | |-TemplateArgument type 'int' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-TemplateArgument expr '4' +// CHECK-NEXT: | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | |-value: Int 4 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 4 +// CHECK-NEXT: | | `-typeDetails: ExtVectorType {{.*}} 'vector' 4 +// CHECK-NEXT: | | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'int' sugar class depth 0 index 0 element final +// CHECK-NEXT: | | |-TypeAliasTemplate {{.*}} 'vector' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-attrDetails: HLSLResourceBindingAttr {{.*}} "c2" "space0" + double dar[5] : register(c3); +// CHECK: |-VarDecl {{.*}} dar 'hlsl_constant double[5]' +// CHECK-NEXT: | |-qualTypeDetail: QualType {{.*}} 'hlsl_constant double[5]' hlsl_constant +// CHECK-NEXT: | | `-typeDetails: ConstantArrayType {{.*}} 'double[5]' 5 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'double' +// CHECK-NEXT: | `-attrDetails: HLSLResourceBindingAttr {{.*}} "c3" "space0" + struct S { int a; }; -// CHECK: VarDecl {{.*}} s 'hlsl_constant S' -// CHECK: HLSLResourceBindingAttr {{.*}} "c10" "space0 S s : register(c10); + + +// CHECK: |-CXXRecordDecl {{.*}} referenced struct S definition +// CHECK-NEXT: | |-DefinitionData pass_in_registers aggregate standard_layout trivially_copyable pod trivial literal +// CHECK-NEXT: | | |-DefaultConstructor exists trivial needs_implicit +// CHECK-NEXT: | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK-NEXT: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveAssignment exists simple trivial needs_implicit +// CHECK-NEXT: | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK-NEXT: | |-attrDetails: PackedAttr {{.*}} <> Implicit +// CHECK-NEXT: | |-CXXRecordDecl {{.*}} implicit struct S +// CHECK-NEXT: | `-FieldDecl {{.*}} a 'int' +// CHECK-NEXT: |-VarDecl {{.*}} s 'hlsl_constant S' +// CHECK-NEXT: | |-qualTypeDetail: QualType {{.*}} 'hlsl_constant S' hlsl_constant +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'S' sugar +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'S' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'S' +// CHECK-NEXT: | `-attrDetails: HLSLResourceBindingAttr {{.*}} "c10" "space0" +// CHECK-NEXT: `-HLSLBufferDecl {{.*}} <> implicit cbuffer $Globals +// CHECK-NEXT: |-attrDetails: HLSLResourceBindingAttr {{.*}} <> Implicit "" "0" +// CHECK-NEXT: `-CXXRecordDecl {{.*}} <> implicit struct __cblayout_$Globals definition +// CHECK-NEXT: |-DefinitionData pass_in_registers aggregate standard_layout trivially_copyable pod trivial literal +// CHECK-NEXT: | |-DefaultConstructor exists trivial needs_implicit +// CHECK-NEXT: | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | |-MoveConstructor exists simple trivial needs_implicit +// CHECK-NEXT: | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | |-MoveAssignment exists simple trivial needs_implicit +// CHECK-NEXT: | `-Destructor simple irrelevant trivial needs_implicit +// CHECK-NEXT: |-attrDetails: PackedAttr {{.*}} <> Implicit +// CHECK-NEXT: |-FieldDecl {{.*}} <> f 'float' +// CHECK-NEXT: |-FieldDecl {{.*}} <> intv 'vector' +// CHECK-NEXT: |-FieldDecl {{.*}} <> dar 'double[5]' +// CHECK-NEXT: `-FieldDecl {{.*}} <> s 'S' diff --git a/clang/test/AST/alignas_maybe_odr_cleanup.cpp b/clang/test/AST/alignas_maybe_odr_cleanup.cpp index 287eb6e2a4bbb..66987f762dab0 100644 --- a/clang/test/AST/alignas_maybe_odr_cleanup.cpp +++ b/clang/test/AST/alignas_maybe_odr_cleanup.cpp @@ -15,7 +15,7 @@ struct FOO { } }; -// CHECK: | `-AlignedAttr {{.*}} alignas +// CHECK: | `-attrDetails: AlignedAttr {{.*}} alignas // CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' // CHECK-NEXT: | |-value: Int 16 // CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'int' diff --git a/clang/test/AST/ast-dump-aarch64-sve-types.c b/clang/test/AST/ast-dump-aarch64-sve-types.c index 386133e05b1d1..90aaf1a654f2b 100644 --- a/clang/test/AST/ast-dump-aarch64-sve-types.c +++ b/clang/test/AST/ast-dump-aarch64-sve-types.c @@ -10,46 +10,46 @@ // RUN: | FileCheck %s // CHECK: TypedefDecl {{.*}} implicit __SVInt8_t '__SVInt8_t' -// CHECK-NEXT: -BuiltinType {{.*}} '__SVInt8_t' +// CHECK-NEXT: -typeDetails: BuiltinType {{.*}} '__SVInt8_t' // CHECK: TypedefDecl {{.*}} implicit __SVInt16_t '__SVInt16_t' -// CHECK-NEXT: -BuiltinType {{.*}} '__SVInt16_t' +// CHECK-NEXT: -typeDetails: BuiltinType {{.*}} '__SVInt16_t' // CHECK: TypedefDecl {{.*}} implicit __SVInt32_t '__SVInt32_t' -// CHECK-NEXT: -BuiltinType {{.*}} '__SVInt32_t' +// CHECK-NEXT: -typeDetails: BuiltinType {{.*}} '__SVInt32_t' // CHECK: TypedefDecl {{.*}} implicit __SVInt64_t '__SVInt64_t' -// CHECK-NEXT: -BuiltinType {{.*}} '__SVInt64_t' +// CHECK-NEXT: -typeDetails: BuiltinType {{.*}} '__SVInt64_t' // CHECK: TypedefDecl {{.*}} implicit __SVUint8_t '__SVUint8_t' -// CHECK-NEXT: -BuiltinType {{.*}} '__SVUint8_t' +// CHECK-NEXT: -typeDetails: BuiltinType {{.*}} '__SVUint8_t' // CHECK: TypedefDecl {{.*}} implicit __SVUint16_t '__SVUint16_t' -// CHECK-NEXT: -BuiltinType {{.*}} '__SVUint16_t' +// CHECK-NEXT: -typeDetails: BuiltinType {{.*}} '__SVUint16_t' // CHECK: TypedefDecl {{.*}} implicit __SVUint32_t '__SVUint32_t' -// CHECK-NEXT: -BuiltinType {{.*}} '__SVUint32_t' +// CHECK-NEXT: -typeDetails: BuiltinType {{.*}} '__SVUint32_t' // CHECK: TypedefDecl {{.*}} implicit __SVUint64_t '__SVUint64_t' -// CHECK-NEXT: -BuiltinType {{.*}} '__SVUint64_t' +// CHECK-NEXT: -typeDetails: BuiltinType {{.*}} '__SVUint64_t' // CHECK: TypedefDecl {{.*}} implicit __SVFloat16_t '__SVFloat16_t' -// CHECK-NEXT: -BuiltinType {{.*}} '__SVFloat16_t' +// CHECK-NEXT: -typeDetails: BuiltinType {{.*}} '__SVFloat16_t' // CHECK: TypedefDecl {{.*}} implicit __SVFloat32_t '__SVFloat32_t' -// CHECK-NEXT: -BuiltinType {{.*}} '__SVFloat32_t' +// CHECK-NEXT: -typeDetails: BuiltinType {{.*}} '__SVFloat32_t' // CHECK: TypedefDecl {{.*}} implicit __SVFloat64_t '__SVFloat64_t' -// CHECK-NEXT: -BuiltinType {{.*}} '__SVFloat64_t' +// CHECK-NEXT: -typeDetails: BuiltinType {{.*}} '__SVFloat64_t' // CHECK: TypedefDecl {{.*}} implicit __SVBfloat16_t '__SVBfloat16_t' -// CHECK-NEXT: -BuiltinType {{.*}} '__SVBfloat16_t' +// CHECK-NEXT: -typeDetails: BuiltinType {{.*}} '__SVBfloat16_t' // CHECK: TypedefDecl {{.*}} implicit __SVMfloat8_t '__SVMfloat8_t' -// CHECK-NEXT: -BuiltinType {{.*}} '__SVMfloat8_t' +// CHECK-NEXT: -typeDetails: BuiltinType {{.*}} '__SVMfloat8_t' // CHECK: TypedefDecl {{.*}} implicit __SVBool_t '__SVBool_t' -// CHECK-NEXT: -BuiltinType {{.*}} '__SVBool_t' +// CHECK-NEXT: -typeDetails: BuiltinType {{.*}} '__SVBool_t' // CHECK: TypedefDecl {{.*}} implicit __SVCount_t '__SVCount_t' -// CHECK-NEXT: -BuiltinType {{.*}} '__SVCount_t' +// CHECK-NEXT: -typeDetails: BuiltinType {{.*}} '__SVCount_t' diff --git a/clang/test/AST/ast-dump-arm-attr.c b/clang/test/AST/ast-dump-arm-attr.c index 78f557d4eb0b1..ab4eb96c9442b 100644 --- a/clang/test/AST/ast-dump-arm-attr.c +++ b/clang/test/AST/ast-dump-arm-attr.c @@ -18,7 +18,7 @@ __attribute__((interrupt)) void Test(void); // CHECK: FunctionDecl{{.*}}Test -// CHECK-NEXT: ARMInterruptAttr +// CHECK-NEXT: attrDetails: ARMInterruptAttr typedef int (*CmseTest)(int a) __attribute__((cmse_nonsecure_call)); // CHECK-CMSE: TypedefDecl{{.*}}CmseTest{{.*}}__attribute__((cmse_nonsecure_call)) diff --git a/clang/test/AST/ast-dump-array.cpp b/clang/test/AST/ast-dump-array.cpp index 5a982d34683ff..168af96d4f872 100644 --- a/clang/test/AST/ast-dump-array.cpp +++ b/clang/test/AST/ast-dump-array.cpp @@ -13,20 +13,76 @@ void testArrayInitExpr() int a[10]; auto l = [a]{ }; - // CHECK: |-ArrayInitLoopExpr 0x{{[^ ]*}} 'int[10]' - // CHECK: | `-ArrayInitIndexExpr 0x{{[^ ]*}} <> '__size_t':'unsigned long' } +// CHECK: |-FunctionDecl {{.*}} testArrayInitExpr 'void ()' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used a 'int[10]' +// CHECK-NEXT: | | `-typeDetails: ConstantArrayType {{.*}} 'int[10]' 10 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-DeclStmt {{.*}} +// CHECK-NEXT: | `-VarDecl {{.*}} cinit +// CHECK-NEXT: | |-LambdaExpr {{.*}} +// CHECK-NEXT: | | |-CXXRecordDecl {{.*}} implicit class definition +// CHECK-NEXT: | | | |-DefinitionData lambda pass_in_registers standard_layout trivially_copyable literal can_const_default_init +// CHECK-NEXT: | | | | |-DefaultConstructor +// CHECK-NEXT: | | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK-NEXT: | | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | | | |-MoveAssignment +// CHECK-NEXT: | | | | `-Destructor simple irrelevant trivial +// CHECK-NEXT: | | | |-CXXMethodDecl {{.*}} constexpr operator() 'auto () const -> void' inline +// CHECK-NEXT: | | | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int[10]' +// CHECK-NEXT: | | | `-CXXDestructorDecl {{.*}} implicit referenced +// CHECK-NEXT: | | |-ArrayInitLoopExpr {{.*}} 'int[10]' +// CHECK-NEXT: | | | |-OpaqueValueExpr {{.*}} 'int[10]' lvalue +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int[10]' lvalue Var {{.*}} 'a' 'int[10]' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-ArraySubscriptExpr {{.*}} 'int' lvalue +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | `-OpaqueValueExpr {{.*}} 'int[10]' lvalue +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int[10]' lvalue Var {{.*}} 'a' 'int[10]' +// CHECK-NEXT: | | | `-ArrayInitIndexExpr {{.*}} +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-typeDetails: AutoType {{.*}} +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} +// CHECK-NEXT: | `-CXXRecord {{.*}} + template class array { T data[Size]; using array_T_size = T[Size]; - // CHECK: `-DependentSizedArrayType 0x{{[^ ]*}} 'T[Size]' dependent using const_array_T_size = const T[Size]; - // CHECK: `-DependentSizedArrayType 0x{{[^ ]*}} 'const T[Size]' dependent }; +// CHECK: |-ClassTemplateDecl {{.*}} array +// CHECK-NEXT: | |-TemplateTypeParmDecl {{.*}} referenced typename depth 0 index 0 T +// CHECK-NEXT: | |-NonTypeTemplateParmDecl {{.*}} referenced 'int' depth 0 index 1 Size +// CHECK-NEXT: | `-CXXRecordDecl {{.*}} class array definition +// CHECK-NEXT: | |-DefinitionData standard_layout trivially_copyable trivial +// CHECK-NEXT: | | |-DefaultConstructor exists trivial needs_implicit +// CHECK-NEXT: | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK-NEXT: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveAssignment exists simple trivial needs_implicit +// CHECK-NEXT: | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK-NEXT: | |-CXXRecordDecl {{.*}} implicit class array +// CHECK-NEXT: | |-FieldDecl {{.*}} data 'T[Size]' +// CHECK-NEXT: | |-TypeAliasDecl {{.*}} array_T_size 'T[Size]' +// CHECK-NEXT: | | `-typeDetails: DependentSizedArrayType {{.*}} 'T[Size]' dependent +// CHECK-NEXT: | | |-typeDetails: TemplateTypeParmType {{.*}} 'T' dependent depth 0 index 0 +// CHECK-NEXT: | | | `-TemplateTypeParm {{.*}} 'T' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' NonTypeTemplateParm {{.*}} 'Size' 'int' +// CHECK-NEXT: | `-TypeAliasDecl {{.*}} const_array_T_size 'const T[Size]' +// CHECK-NEXT: | `-typeDetails: DependentSizedArrayType {{.*}} 'const T[Size]' dependent +// CHECK-NEXT: | |-qualTypeDetail: QualType {{.*}} 'const T' const +// CHECK-NEXT: | | `-typeDetails: TemplateTypeParmType {{.*}} 'T' dependent depth 0 index 0 +// CHECK-NEXT: | | `-TemplateTypeParm {{.*}} 'T' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' NonTypeTemplateParm {{.*}} 'Size' 'int' + struct V {}; template void testDependentSubscript() { diff --git a/clang/test/AST/ast-dump-atomic-options.hip b/clang/test/AST/ast-dump-atomic-options.hip index f34f592c4a134..21d2130762ba5 100644 --- a/clang/test/AST/ast-dump-atomic-options.hip +++ b/clang/test/AST/ast-dump-atomic-options.hip @@ -6,97 +6,175 @@ #include "Inputs/cuda.h" -// CHECK-LABEL: FunctionDecl {{.*}} test_default -// CHECK-NOT: AttributedStmt -// CHECK-NOT: AtomicAttr -// CHECK: CompoundStmt -// CHECK-NEXT: `-AtomicExpr __device__ __host__ void test_default(float *a) { __scoped_atomic_fetch_add(a, 1, __ATOMIC_RELAXED, __MEMORY_SCOPE_SYSTEM); } -// CHECK-LABEL: FunctionDecl {{.*}} test_one -// CHECK: `-AttributedStmt -// CHECK-NEXT: |-AtomicAttr {{.*}} no_remote_memory{{$}} -// CHECK-NEXT: `-CompoundStmt -// CHECK-NEXT: `-AtomicExpr +// CHECK: |-FunctionDecl {{.*}} test_default 'void (float *)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used a 'float *' +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'float *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | |-CompoundStmt {{.*}} +// CHECK-NEXT: | | `-AtomicExpr {{.*}} 'float' __scoped_atomic_fetch_add +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'float *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'float *' lvalue ParmVar {{.*}} 'a' 'float *' +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <:7:26> 'int' 0 +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <:13:31> 'int' 0 +// CHECK-NEXT: | |-attrDetails: CUDADeviceAttr {{.*}} +// CHECK-NEXT: | `-attrDetails: CUDAHostAttr {{.*}} +// CHECK-NEXT: |-LinkageSpecDecl {{.*}} implicit C +// CHECK-NEXT: | `-FunctionDecl {{.*}} implicit used __scoped_atomic_fetch_add 'void (...)' extern +// CHECK-NEXT: | `-attrDetails: BuiltinAttr {{.*}} <> Implicit 72 + __device__ __host__ void test_one(float *a) { [[clang::atomic(no_remote_memory)]] { __scoped_atomic_fetch_add(a, 1, __ATOMIC_RELAXED, __MEMORY_SCOPE_SYSTEM); } } -// CHECK-LABEL: FunctionDecl {{.*}} test_two -// CHECK: `-AttributedStmt -// CHECK-NEXT: |-AtomicAttr {{.*}} remote_memory ignore_denormal_mode{{$}} -// CHECK-NEXT: `-CompoundStmt -// CHECK-NEXT: `-AtomicExpr +// CHECK: |-FunctionDecl {{.*}} test_one 'void (float *)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used a 'float *' +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'float *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | |-CompoundStmt {{.*}} +// CHECK-NEXT: | | `-AttributedStmt {{.*}} +// CHECK-NEXT: | | |-attrDetails: AtomicAttr {{.*}} no_remote_memory +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | | `-AtomicExpr {{.*}} 'float' __scoped_atomic_fetch_add +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'float *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'float *' lvalue ParmVar {{.*}} 'a' 'float *' +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <:7:26> 'int' 0 +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <:13:31> 'int' 0 +// CHECK-NEXT: | |-attrDetails: CUDADeviceAttr {{.*}} +// CHECK-NEXT: | `-attrDetails: CUDAHostAttr {{.*}} + __device__ __host__ void test_two(float *a) { [[clang::atomic(remote_memory, ignore_denormal_mode)]] { __scoped_atomic_fetch_add(a, 1, __ATOMIC_RELAXED, __MEMORY_SCOPE_SYSTEM); } } -// CHECK-LABEL: FunctionDecl {{.*}} test_three -// CHECK: `-AttributedStmt -// CHECK-NEXT: |-AtomicAttr {{.*}} no_remote_memory fine_grained_memory no_ignore_denormal_mode{{$}} -// CHECK-NEXT: `-CompoundStmt -// CHECK-NEXT: `-AtomicExpr +// CHECK: |-FunctionDecl {{.*}} test_two 'void (float *)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used a 'float *' +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'float *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | |-CompoundStmt {{.*}} +// CHECK-NEXT: | | `-AttributedStmt {{.*}} +// CHECK-NEXT: | | |-attrDetails: AtomicAttr {{.*}} remote_memory ignore_denormal_mode +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | | `-AtomicExpr {{.*}} 'float' __scoped_atomic_fetch_add +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'float *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'float *' lvalue ParmVar {{.*}} 'a' 'float *' +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <:7:26> 'int' 0 +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <:13:31> 'int' 0 +// CHECK-NEXT: | |-attrDetails: CUDADeviceAttr {{.*}} +// CHECK-NEXT: | `-attrDetails: CUDAHostAttr {{.*}} + + __device__ __host__ void test_three(float *a) { [[clang::atomic(no_remote_memory, fine_grained_memory, no_ignore_denormal_mode)]] { __scoped_atomic_fetch_add(a, 1, __ATOMIC_RELAXED, __MEMORY_SCOPE_SYSTEM); } } -// CHECK-LABEL: FunctionDecl {{.*}} test_duplicate -// CHECK: `-AttributedStmt -// CHECK-NEXT: |-AtomicAttr {{.*}} no_remote_memory{{$}} -// CHECK-NEXT: `-CompoundStmt -// CHECK-NEXT: `-AtomicExpr +// CHECK: |-FunctionDecl {{.*}} test_three 'void (float *)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used a 'float *' +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'float *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | |-CompoundStmt {{.*}} +// CHECK-NEXT: | | `-AttributedStmt {{.*}} +// CHECK-NEXT: | | |-attrDetails: AtomicAttr {{.*}} no_remote_memory fine_grained_memory no_ignore_denormal_mode +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | | `-AtomicExpr {{.*}} 'float' __scoped_atomic_fetch_add +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'float *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'float *' lvalue ParmVar {{.*}} 'a' 'float *' +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <:7:26> 'int' 0 +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <:13:31> 'int' 0 +// CHECK-NEXT: | |-attrDetails: CUDADeviceAttr {{.*}} +// CHECK-NEXT: | `-attrDetails: CUDAHostAttr {{.*}} + __device__ __host__ void test_duplicate(float *a) { [[clang::atomic(no_remote_memory, no_remote_memory)]] { __scoped_atomic_fetch_add(a, 1, __ATOMIC_RELAXED, __MEMORY_SCOPE_SYSTEM); } } -// CHECK-LABEL: FunctionDecl {{.*}} test_conflict -// CHECK: `-AttributedStmt -// CHECK-NEXT: |-AtomicAttr {{.*}} remote_memory{{$}} -// CHECK-NEXT: `-CompoundStmt -// CHECK-NEXT: `-AtomicExpr +// CHECK: |-FunctionDecl {{.*}} test_duplicate 'void (float *)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used a 'float *' +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'float *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | |-CompoundStmt {{.*}} +// CHECK-NEXT: | | `-AttributedStmt {{.*}} +// CHECK-NEXT: | | |-attrDetails: AtomicAttr {{.*}} no_remote_memory no_remote_memory +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | | `-AtomicExpr {{.*}} 'float' __scoped_atomic_fetch_add +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'float *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'float *' lvalue ParmVar {{.*}} 'a' 'float *' +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <:7:26> 'int' 0 +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <:13:31> 'int' 0 +// CHECK-NEXT: | |-attrDetails: CUDADeviceAttr {{.*}} +// CHECK-NEXT: | `-attrDetails: CUDAHostAttr {{.*}} + __device__ __host__ void test_conflict(float *a) { [[clang::atomic(no_remote_memory, remote_memory)]] { __scoped_atomic_fetch_add(a, 1, __ATOMIC_RELAXED, __MEMORY_SCOPE_SYSTEM); } } -// CHECK-LABEL: FunctionDecl {{.*}} test_multiple_attrs -// CHECK: `-AttributedStmt -// CHECK-NEXT: |-AtomicAttr {{.*}} no_remote_memory{{$}} -// CHECK-NEXT: |-AtomicAttr {{.*}} remote_memory{{$}} -// CHECK-NEXT: `-CompoundStmt -// CHECK-NEXT: `-AtomicExpr +// CHECK: |-FunctionDecl {{.*}} test_conflict 'void (float *)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used a 'float *' +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'float *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | |-CompoundStmt {{.*}} +// CHECK-NEXT: | | `-AttributedStmt {{.*}} +// CHECK-NEXT: | | |-attrDetails: AtomicAttr {{.*}} no_remote_memory remote_memory +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | | `-AtomicExpr {{.*}} 'float' __scoped_atomic_fetch_add +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'float *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'float *' lvalue ParmVar {{.*}} 'a' 'float *' +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <:7:26> 'int' 0 +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <:13:31> 'int' 0 +// CHECK-NEXT: | |-attrDetails: CUDADeviceAttr {{.*}} +// CHECK-NEXT: | `-attrDetails: CUDAHostAttr {{.*}} + __device__ __host__ void test_multiple_attrs(float *a) { [[clang::atomic(no_remote_memory)]] [[clang::atomic(remote_memory)]] { __scoped_atomic_fetch_add(a, 1, __ATOMIC_RELAXED, __MEMORY_SCOPE_SYSTEM); } } -// CHECK-LABEL: FunctionDecl {{.*}} test_nested -// CHECK: CompoundStmt -// CHECK: |-AtomicExpr -// CHECK: `-AttributedStmt -// CHECK-NEXT: |-AtomicAttr {{.*}} remote_memory fine_grained_memory no_ignore_denormal_mode{{$}} -// CHECK-NEXT: `-CompoundStmt -// CHECK: |-AtomicExpr -// CHECK: |-AttributedStmt -// CHECK-NEXT: |-AtomicAttr {{.*}} no_remote_memory{{$}} -// CHECK-NEXT: `-CompoundStmt -// CHECK-NEXT: `-AtomicExpr -// CHECK: `-AttributedStmt -// CHECK-NEXT: |-AtomicAttr {{.*}} no_fine_grained_memory{{$}} -// CHECK-NEXT: `-CompoundStmt -// CHECK-NEXT: `-AtomicExpr + +// CHECK: |-FunctionDecl {{.*}} test_multiple_attrs 'void (float *)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used a 'float *' +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'float *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | |-CompoundStmt {{.*}} +// CHECK-NEXT: | | `-AttributedStmt {{.*}} +// CHECK-NEXT: | | |-attrDetails: AtomicAttr {{.*}} no_remote_memory +// CHECK-NEXT: | | |-attrDetails: AtomicAttr {{.*}} remote_memory +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | | `-AtomicExpr {{.*}} 'float' __scoped_atomic_fetch_add +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'float *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'float *' lvalue ParmVar {{.*}} 'a' 'float *' +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <:7:26> 'int' 0 +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <:13:31> 'int' 0 +// CHECK-NEXT: | |-attrDetails: CUDADeviceAttr {{.*}} +// CHECK-NEXT: | `-attrDetails: CUDAHostAttr {{.*}} + __device__ __host__ void test_nested(float *a) { __scoped_atomic_fetch_add(a, 1, __ATOMIC_RELAXED, __MEMORY_SCOPE_SYSTEM); [[clang::atomic(remote_memory, fine_grained_memory, no_ignore_denormal_mode)]] { @@ -110,19 +188,61 @@ __device__ __host__ void test_nested(float *a) { } } -// CHECK-LABEL: FunctionTemplateDecl {{.*}} test_template -// CHECK: |-FunctionDecl {{.*}} test_template 'void (T *)' -// CHECK: | |-CompoundStmt -// CHECK: | | `-AttributedStmt -// CHECK: | | |-AtomicAttr {{.*}} no_remote_memory fine_grained_memory no_ignore_denormal_mode{{$}} -// CHECK: | | `-CompoundStmt -// CHECK: | | `-CallExpr {{.*}} '' -// CHECK: `-FunctionDecl {{.*}} used test_template 'void (float *)' implicit_instantiation -// CHECK: |-CompoundStmt -// CHECK: | `-AttributedStmt -// CHECK: | |-AtomicAttr {{.*}} no_remote_memory fine_grained_memory no_ignore_denormal_mode{{$}} -// CHECK: | `-CompoundStmt -// CHECK: | `-AtomicExpr {{.*}} 'float' +// CHECK: |-FunctionDecl {{.*}} test_nested 'void (float *)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used a 'float *' +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'float *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | |-CompoundStmt {{.*}} +// CHECK-NEXT: | | |-AtomicExpr {{.*}} 'float' __scoped_atomic_fetch_add +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'float *' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'float *' lvalue ParmVar {{.*}} 'a' 'float *' +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} <:7:26> 'int' 0 +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <:13:31> 'int' 0 +// CHECK-NEXT: | | `-AttributedStmt {{.*}} +// CHECK-NEXT: | | |-attrDetails: AtomicAttr {{.*}} remote_memory fine_grained_memory no_ignore_denormal_mode +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | | |-AtomicExpr {{.*}} 'float' __scoped_atomic_fetch_max +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'float *' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'float *' lvalue ParmVar {{.*}} 'a' 'float *' +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} <:12:26> 'int' 5 +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <:14:31> 'int' 1 +// CHECK-NEXT: | | |-AttributedStmt {{.*}} +// CHECK-NEXT: | | | |-attrDetails: AtomicAttr {{.*}} no_remote_memory +// CHECK-NEXT: | | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | | | `-AtomicExpr {{.*}} 'float' __scoped_atomic_fetch_min +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'float *' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'float *' lvalue ParmVar {{.*}} 'a' 'float *' +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} <:9:26> 'int' 2 +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 3 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <:15:31> 'int' 2 +// CHECK-NEXT: | | `-AttributedStmt {{.*}} +// CHECK-NEXT: | | |-attrDetails: AtomicAttr {{.*}} no_fine_grained_memory +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | | `-AtomicExpr {{.*}} 'float' __scoped_atomic_fetch_sub +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'float *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'float *' lvalue ParmVar {{.*}} 'a' 'float *' +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <:10:26> 'int' 3 +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 4 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <:16:31> 'int' 3 +// CHECK-NEXT: | |-attrDetails: CUDADeviceAttr {{.*}} +// CHECK-NEXT: | `-attrDetails: CUDAHostAttr {{.*}} +// CHECK-NEXT: |-LinkageSpecDecl {{.*}} implicit C +// CHECK-NEXT: | `-FunctionDecl {{.*}} implicit used __scoped_atomic_fetch_max 'void (...)' extern +// CHECK-NEXT: | `-attrDetails: BuiltinAttr {{.*}} <> Implicit 74 +// CHECK-NEXT: |-LinkageSpecDecl {{.*}} implicit C +// CHECK-NEXT: | `-FunctionDecl {{.*}} implicit used __scoped_atomic_fetch_min 'void (...)' extern +// CHECK-NEXT: | `-attrDetails: BuiltinAttr {{.*}} <> Implicit 75 +// CHECK-NEXT: |-LinkageSpecDecl {{.*}} implicit C +// CHECK-NEXT: | `-FunctionDecl {{.*}} implicit used __scoped_atomic_fetch_sub 'void (...)' extern +// CHECK-NEXT: | `-attrDetails: BuiltinAttr {{.*}} <> Implicit 78 + + template __device__ __host__ void test_template(T *a) { [[clang::atomic(no_remote_memory, fine_grained_memory, no_ignore_denormal_mode)]] { @@ -134,3 +254,36 @@ __device__ __host__ void test_template_caller() { float *p; test_template(p); } + +// CHECK: |-FunctionTemplateDecl {{.*}} test_template +// CHECK-NEXT: | |-TemplateTypeParmDecl {{.*}} referenced typename depth 0 index 0 T +// CHECK-NEXT: | |-FunctionDecl {{.*}} test_template 'void (T *)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} referenced a 'T *' +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'T *' dependent +// CHECK-NEXT: | | `-typeDetails: TemplateTypeParmType {{.*}} 'T' dependent depth 0 index 0 +// CHECK-NEXT: | | `-TemplateTypeParm {{.*}} 'T' +// CHECK-NEXT: | |-CompoundStmt {{.*}} +// CHECK-NEXT: | | `-AttributedStmt {{.*}} +// CHECK-NEXT: | | |-attrDetails: AtomicAttr {{.*}} no_remote_memory fine_grained_memory no_ignore_denormal_mode +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | | `-CallExpr {{.*}} '' +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} '' Function {{.*}} '__scoped_atomic_fetch_add' 'void (...)' +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'T *' lvalue ParmVar {{.*}} 'a' 'T *' +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} <:7:26> 'int' 0 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | |-attrDetails: CUDADeviceAttr {{.*}} +// CHECK-NEXT: | `-attrDetails: CUDAHostAttr {{.*}} +// CHECK: `-FunctionDecl {{.*}} test_template_caller 'void ()' +// CHECK-NEXT: |-CompoundStmt {{.*}} +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used p 'float *' +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'float *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | `-CallExpr {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'void (*)(float *)' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'void (float *)' lvalue Function {{.*}} 'test_template' 'void (float *)' (FunctionTemplate {{.*}} 'test_template') +// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'float *' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'float *' lvalue Var {{.*}} 'p' 'float *' +// CHECK-NEXT: |-attrDetails: CUDADeviceAttr {{.*}} +// CHECK-NEXT: `-attrDetails: CUDAHostAttr {{.*}} diff --git a/clang/test/AST/ast-dump-attr-json.cpp b/clang/test/AST/ast-dump-attr-json.cpp index 883e584bfedf0..c3426dfbed690 100644 --- a/clang/test/AST/ast-dump-attr-json.cpp +++ b/clang/test/AST/ast-dump-attr-json.cpp @@ -1,531 +1,654 @@ -// RUN: %clang_cc1 -triple x86_64-pc-linux -Wdocumentation -ast-dump=json %s | FileCheck %s - -int global_decl; -extern __attribute__((alias("global_decl"))) int global_alias; - -void cleanup_function(int*); -void some() { - __attribute__((cleanup(cleanup_function))) int var; -} - -__attribute__((deprecated)) int deprecated_var0; -__attribute__((deprecated("reason"))) int deprecated_var1; -__attribute__((deprecated("reason", "replacement"))) int deprecated_var2; - -__attribute__((unavailable)) int unavailable_var0; -__attribute__((unavailable("reason"))) int unavailable_var1; - -__attribute__ ((section ("SECTION_NAME"))) int section_var; - -__attribute__ ((visibility ("hidden"))) int visibility_var; - -__thread __attribute__ ((tls_model ("local-exec"))) int tls_model_var; - -// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py -// using --filters=VarDecl - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 97, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 3, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 11 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 93, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 97, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 11 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "global_decl", -// CHECK-NEXT: "mangledName": "global_decl", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 159, -// CHECK-NEXT: "line": 4, -// CHECK-NEXT: "col": 50, -// CHECK-NEXT: "tokLen": 12 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 110, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 159, -// CHECK-NEXT: "col": 50, -// CHECK-NEXT: "tokLen": 12 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "global_alias", -// CHECK-NEXT: "mangledName": "global_alias", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "storageClass": "extern", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "AliasAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 132, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 151, -// CHECK-NEXT: "col": 42, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "aliasee": "global_decl" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 266, -// CHECK-NEXT: "col": 50, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 219, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 266, -// CHECK-NEXT: "col": 50, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "var", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CleanupAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 234, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 7 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 258, -// CHECK-NEXT: "col": 42, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "cleanup_function": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "cleanup_function", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (int *)" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 306, -// CHECK-NEXT: "line": 11, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 15 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 274, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 306, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 15 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "deprecated_var0", -// CHECK-NEXT: "mangledName": "deprecated_var0", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeprecatedAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 289, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 289, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 365, -// CHECK-NEXT: "line": 12, -// CHECK-NEXT: "col": 43, -// CHECK-NEXT: "tokLen": 15 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 323, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 365, -// CHECK-NEXT: "col": 43, -// CHECK-NEXT: "tokLen": 15 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "deprecated_var1", -// CHECK-NEXT: "mangledName": "deprecated_var1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeprecatedAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 338, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 357, -// CHECK-NEXT: "col": 35, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "message": "reason" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 439, -// CHECK-NEXT: "line": 13, -// CHECK-NEXT: "col": 58, -// CHECK-NEXT: "tokLen": 15 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 382, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 439, -// CHECK-NEXT: "col": 58, -// CHECK-NEXT: "tokLen": 15 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "deprecated_var2", -// CHECK-NEXT: "mangledName": "deprecated_var2", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeprecatedAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 397, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 431, -// CHECK-NEXT: "col": 50, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "message": "reason", -// CHECK-NEXT: "replacement": "replacement" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 490, -// CHECK-NEXT: "line": 15, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 457, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 490, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "unavailable_var0", -// CHECK-NEXT: "mangledName": "unavailable_var0", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnavailableAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 472, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 11 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 472, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 11 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 551, -// CHECK-NEXT: "line": 16, -// CHECK-NEXT: "col": 44, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 508, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 551, -// CHECK-NEXT: "col": 44, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "unavailable_var1", -// CHECK-NEXT: "mangledName": "unavailable_var1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnavailableAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 523, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 11 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 543, -// CHECK-NEXT: "col": 36, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "message": "reason" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 617, -// CHECK-NEXT: "line": 18, -// CHECK-NEXT: "col": 48, -// CHECK-NEXT: "tokLen": 11 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 570, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 617, -// CHECK-NEXT: "col": 48, -// CHECK-NEXT: "tokLen": 11 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "section_var", -// CHECK-NEXT: "mangledName": "section_var", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "SectionAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 586, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 7 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 609, -// CHECK-NEXT: "col": 40, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "section_name": "SECTION_NAME" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 675, -// CHECK-NEXT: "line": 20, -// CHECK-NEXT: "col": 45, -// CHECK-NEXT: "tokLen": 14 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 631, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 675, -// CHECK-NEXT: "col": 45, -// CHECK-NEXT: "tokLen": 14 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "visibility_var", -// CHECK-NEXT: "mangledName": "visibility_var", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VisibilityAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 647, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 667, -// CHECK-NEXT: "col": 37, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "visibility": "hidden" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 748, -// CHECK-NEXT: "line": 22, -// CHECK-NEXT: "col": 57, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 692, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 748, -// CHECK-NEXT: "col": 57, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "tls_model_var", -// CHECK-NEXT: "mangledName": "tls_model_var", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "tls": "static", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TLSModelAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 717, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 9 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 740, -// CHECK-NEXT: "col": 49, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "tls_model": "local-exec" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } +// RUN: %clang_cc1 -triple x86_64-pc-linux -Wdocumentation -ast-dump=json %s | FileCheck %s + +int global_decl; +extern __attribute__((alias("global_decl"))) int global_alias; + +void cleanup_function(int*); +void some() { + __attribute__((cleanup(cleanup_function))) int var; +} + +__attribute__((deprecated)) int deprecated_var0; +__attribute__((deprecated("reason"))) int deprecated_var1; +__attribute__((deprecated("reason", "replacement"))) int deprecated_var2; + +__attribute__((unavailable)) int unavailable_var0; +__attribute__((unavailable("reason"))) int unavailable_var1; + +__attribute__ ((section ("SECTION_NAME"))) int section_var; + +__attribute__ ((visibility ("hidden"))) int visibility_var; + +__thread __attribute__ ((tls_model ("local-exec"))) int tls_model_var; + +// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py +// using --filters=VarDecl + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 99, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 3, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 11 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 95, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 99, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 11 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "global_decl", +// CHECK-NEXT: "mangledName": "global_decl", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 162, +// CHECK-NEXT: "line": 4, +// CHECK-NEXT: "col": 50, +// CHECK-NEXT: "tokLen": 12 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 113, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 162, +// CHECK-NEXT: "col": 50, +// CHECK-NEXT: "tokLen": 12 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "global_alias", +// CHECK-NEXT: "mangledName": "global_alias", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "storageClass": "extern", +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "AliasAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 135, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 154, +// CHECK-NEXT: "col": 42, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "aliasee": "global_decl" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 273, +// CHECK-NEXT: "col": 50, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 226, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 273, +// CHECK-NEXT: "col": 50, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "var", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CleanupAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 241, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 7 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 265, +// CHECK-NEXT: "col": 42, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "cleanup_function": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "cleanup_function", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int *)" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 316, +// CHECK-NEXT: "line": 11, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 15 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 284, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 316, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 15 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "deprecated_var0", +// CHECK-NEXT: "mangledName": "deprecated_var0", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeprecatedAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 299, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 299, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 376, +// CHECK-NEXT: "line": 12, +// CHECK-NEXT: "col": 43, +// CHECK-NEXT: "tokLen": 15 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 334, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 376, +// CHECK-NEXT: "col": 43, +// CHECK-NEXT: "tokLen": 15 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "deprecated_var1", +// CHECK-NEXT: "mangledName": "deprecated_var1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeprecatedAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 349, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 368, +// CHECK-NEXT: "col": 35, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "message": "reason" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 451, +// CHECK-NEXT: "line": 13, +// CHECK-NEXT: "col": 58, +// CHECK-NEXT: "tokLen": 15 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 394, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 451, +// CHECK-NEXT: "col": 58, +// CHECK-NEXT: "tokLen": 15 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "deprecated_var2", +// CHECK-NEXT: "mangledName": "deprecated_var2", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeprecatedAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 409, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 443, +// CHECK-NEXT: "col": 50, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "message": "reason", +// CHECK-NEXT: "replacement": "replacement" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 504, +// CHECK-NEXT: "line": 15, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 471, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 504, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "unavailable_var0", +// CHECK-NEXT: "mangledName": "unavailable_var0", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnavailableAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 486, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 11 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 486, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 11 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 566, +// CHECK-NEXT: "line": 16, +// CHECK-NEXT: "col": 44, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 523, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 566, +// CHECK-NEXT: "col": 44, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "unavailable_var1", +// CHECK-NEXT: "mangledName": "unavailable_var1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnavailableAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 538, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 11 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 558, +// CHECK-NEXT: "col": 36, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "message": "reason" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 634, +// CHECK-NEXT: "line": 18, +// CHECK-NEXT: "col": 48, +// CHECK-NEXT: "tokLen": 11 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 587, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 634, +// CHECK-NEXT: "col": 48, +// CHECK-NEXT: "tokLen": 11 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "section_var", +// CHECK-NEXT: "mangledName": "section_var", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "SectionAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 603, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 7 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 626, +// CHECK-NEXT: "col": 40, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "section_name": "SECTION_NAME" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 694, +// CHECK-NEXT: "line": 20, +// CHECK-NEXT: "col": 45, +// CHECK-NEXT: "tokLen": 14 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 650, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 694, +// CHECK-NEXT: "col": 45, +// CHECK-NEXT: "tokLen": 14 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "visibility_var", +// CHECK-NEXT: "mangledName": "visibility_var", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VisibilityAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 666, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 686, +// CHECK-NEXT: "col": 37, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "visibility": "hidden" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 769, +// CHECK-NEXT: "line": 22, +// CHECK-NEXT: "col": 57, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 713, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 769, +// CHECK-NEXT: "col": 57, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "tls_model_var", +// CHECK-NEXT: "mangledName": "tls_model_var", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "tls": "static", +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TLSModelAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 738, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 9 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 761, +// CHECK-NEXT: "col": 49, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "tls_model": "local-exec" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } diff --git a/clang/test/AST/ast-dump-attr-type.cpp b/clang/test/AST/ast-dump-attr-type.cpp index 78a3b660bbe60..b4e1f384d4bcc 100644 --- a/clang/test/AST/ast-dump-attr-type.cpp +++ b/clang/test/AST/ast-dump-attr-type.cpp @@ -4,21 +4,21 @@ int * _Nonnull x; using Ty = decltype(x); // CHECK: TypeAliasDecl 0x{{[^ ]*}} col:7 Ty 'decltype(x)':'int *' -// CHECK-NEXT: `-DecltypeType 0x{{[^ ]*}} 'decltype(x)' sugar +// CHECK-NEXT: `-typeDetails: DecltypeType 0x{{[^ ]*}} 'decltype(x)' sugar // CHECK-NEXT: |-DeclRefExpr 0x{{[^ ]*}} 'int * _Nonnull':'int *' lvalue Var 0x{{[^ ]*}} 'x' 'int * _Nonnull':'int *' non_odr_use_unevaluated -// CHECK-NEXT: `-AttributedType 0x{{[^ ]*}} 'int * _Nonnull' sugar -// CHECK-NEXT: `-PointerType 0x{{[^ ]*}} 'int *' -// CHECK-NEXT: `-BuiltinType 0x{{[^ ]*}} 'int' -// CHECK-NOT: `-PointerType +// CHECK-NEXT: `-typeDetails: AttributedType 0x{{[^ ]*}} 'int * _Nonnull' sugar +// CHECK-NEXT: `-typeDetails: PointerType 0x{{[^ ]*}} 'int *' +// CHECK-NEXT: `-typeDetails: BuiltinType 0x{{[^ ]*}} 'int' + [[clang::address_space(3)]] int *y; using Ty1 = decltype(y); // CHECK: TypeAliasDecl 0x{{[^ ]*}} col:7 Ty1 'decltype(y)':'__attribute__((address_space(3))) int *' -// CHECK-NEXT: `-DecltypeType 0x{{[^ ]*}} 'decltype(y)' sugar +// CHECK-NEXT: `-typeDetails: DecltypeType 0x{{[^ ]*}} 'decltype(y)' sugar // CHECK-NEXT: |-DeclRefExpr 0x{{[^ ]*}} '__attribute__((address_space(3))) int *' lvalue Var 0x{{[^ ]*}} 'y' '__attribute__((address_space(3))) int *' non_odr_use_unevaluated -// CHECK-NEXT: `-PointerType 0x{{[^ ]*}} '__attribute__((address_space(3))) int *' -// CHECK-NEXT: `-AttributedType 0x{{[^ ]*}} '__attribute__((address_space(3))) int' sugar -// CHECK-NEXT |-BuiltinType 0x{{[^ ]*}} 'int' -// CHECK-NEXT `-QualType 0x{{[^ ]*}} '__attribute__((address_space(3))) int' __attribute__((address_space(3))) -// CHECK-NEXT `-BuiltinType 0x{{[^ ]*}} 'int' +// CHECK-NEXT: `-typeDetails: PointerType 0x{{[^ ]*}} '__attribute__((address_space(3))) int *' +// CHECK-NEXT: `-typeDetails: AttributedType 0x{{[^ ]*}} '__attribute__((address_space(3))) int' sugar +// CHECK-NEXT |-typeDetails: BuiltinType 0x{{[^ ]*}} 'int' +// CHECK-NEXT `-typeDetails: QualType 0x{{[^ ]*}} '__attribute__((address_space(3))) int' __attribute__((address_space(3))) +// CHECK-NEXT `-typeDetails: BuiltinType 0x{{[^ ]*}} 'int' diff --git a/clang/test/AST/ast-dump-attr.cpp b/clang/test/AST/ast-dump-attr.cpp index f5a7481571421..0229990f69f4e 100644 --- a/clang/test/AST/ast-dump-attr.cpp +++ b/clang/test/AST/ast-dump-attr.cpp @@ -1,298 +1,331 @@ -// Test without serialization: -// RUN: %clang_cc1 -triple x86_64-pc-linux -std=c++11 -Wno-deprecated-declarations -ast-dump -ast-dump-filter Test %s \ -// RUN: | FileCheck --strict-whitespace %s -// -// Test with serialization: -// RUN: %clang_cc1 -triple x86_64-pc-linux -std=c++11 -Wno-deprecated-declarations -emit-pch -o %t %s -// RUN: %clang_cc1 -x c++ -triple x86_64-pc-linux -std=c++11 -Wno-deprecated-declarations \ -// RUN: -include-pch %t -ast-dump-all -ast-dump-filter Test /dev/null \ -// RUN: | sed -e "s/ //" -e "s/ imported//" \ -// RUN: | FileCheck --strict-whitespace %s - -int TestLocation -__attribute__((unused)); -// CHECK: VarDecl{{.*}}TestLocation -// CHECK-NEXT: UnusedAttr 0x{{[^ ]*}} - -int TestIndent -__attribute__((unused)); -// CHECK: {{^}}VarDecl{{.*TestIndent[^()]*$}} -// CHECK-NEXT: {{^}}`-UnusedAttr{{[^()]*$}} - -void TestAttributedStmt() { - switch (1) { - case 1: - [[clang::fallthrough]]; - case 2: - ; - } -} -// CHECK: FunctionDecl{{.*}}TestAttributedStmt -// CHECK: AttributedStmt -// CHECK-NEXT: FallThroughAttr -// CHECK-NEXT: NullStmt - -[[clang::warn_unused_result]] int TestCXX11DeclAttr(); -// CHECK: FunctionDecl{{.*}}TestCXX11DeclAttr -// CHECK-NEXT: WarnUnusedResultAttr - -int TestAlignedNull __attribute__((aligned)); -// CHECK: VarDecl{{.*}}TestAlignedNull -// CHECK-NEXT: AlignedAttr {{.*}} aligned -// CHECK-NEXT: <<>> - -int TestAlignedExpr __attribute__((aligned(4))); -// CHECK: VarDecl{{.*}}TestAlignedExpr -// CHECK-NEXT: AlignedAttr {{.*}} aligned -// CHECK-NEXT: ConstantExpr -// CHECK-NEXT: value: Int 4 -// CHECK-NEXT: IntegerLiteral - -int TestEnum __attribute__((visibility("default"))); -// CHECK: VarDecl{{.*}}TestEnum -// CHECK-NEXT: VisibilityAttr{{.*}} Default - -class __attribute__((lockable)) Mutex { -} mu1, mu2; -int TestExpr __attribute__((guarded_by(mu1))); -// CHECK: VarDecl{{.*}}TestExpr -// CHECK-NEXT: GuardedByAttr -// CHECK-NEXT: DeclRefExpr{{.*}}mu1 - -class Mutex TestVariadicExpr __attribute__((acquired_after(mu1, mu2))); -// CHECK: VarDecl{{.*}}TestVariadicExpr -// CHECK: AcquiredAfterAttr -// CHECK-NEXT: DeclRefExpr{{.*}}mu1 -// CHECK-NEXT: DeclRefExpr{{.*}}mu2 - -void function1(void *) { - int TestFunction __attribute__((cleanup(function1))); -} -// CHECK: VarDecl{{.*}}TestFunction -// CHECK-NEXT: CleanupAttr{{.*}} Function{{.*}}function1 - -void TestIdentifier(void *, int) -__attribute__((pointer_with_type_tag(ident1,1,2))); -// CHECK: FunctionDecl{{.*}}TestIdentifier -// CHECK: ArgumentWithTypeTagAttr{{.*}} pointer_with_type_tag ident1 - -void TestBool(void *, int) -__attribute__((pointer_with_type_tag(bool1,1,2))); -// CHECK: FunctionDecl{{.*}}TestBool -// CHECK: ArgumentWithTypeTagAttr{{.*}}pointer_with_type_tag bool1 1 2 IsPointer - -void TestUnsigned(void *, int) -__attribute__((pointer_with_type_tag(unsigned1,1,2))); -// CHECK: FunctionDecl{{.*}}TestUnsigned -// CHECK: ArgumentWithTypeTagAttr{{.*}} pointer_with_type_tag unsigned1 1 2 - -void TestInt(void) __attribute__((constructor(123))); -// CHECK: FunctionDecl{{.*}}TestInt -// CHECK-NEXT: ConstructorAttr{{.*}} 123 - -static int TestString __attribute__((alias("alias1"))); -// CHECK: VarDecl{{.*}}TestString -// CHECK-NEXT: AliasAttr{{.*}} "alias1" - -extern struct s1 TestType -__attribute__((type_tag_for_datatype(ident1,int))); -// CHECK: VarDecl{{.*}}TestType -// CHECK-NEXT: TypeTagForDatatypeAttr{{.*}} int - -void TestLabel() { -L: __attribute__((unused)) int i; -// CHECK: LabelStmt{{.*}}'L' -// CHECK: VarDecl{{.*}}i 'int' -// CHECK-NEXT: UnusedAttr{{.*}} - -M: __attribute(()) int j; -// CHECK: LabelStmt {{.*}} 'M' -// CHECK-NEXT: DeclStmt -// CHECK-NEXT: VarDecl {{.*}} j 'int' - -N: __attribute(()) ; -// CHECK: LabelStmt {{.*}} 'N' -// CHECK-NEXT: NullStmt -} - -namespace Test { -extern "C" int printf(const char *format, ...); -// CHECK: FunctionDecl{{.*}}printf -// CHECK-NEXT: ParmVarDecl{{.*}}format{{.*}}'const char *' -// CHECK-NEXT: BuiltinAttr{{.*}}Implicit -// CHECK-NEXT: FormatAttr{{.*}}Implicit printf 1 2 - -alignas(8) extern int x; -extern int x; -// CHECK: VarDecl{{.*}} x 'int' -// CHECK: VarDecl{{.*}} x 'int' -// CHECK-NEXT: AlignedAttr{{.*}} Inherited -} - -namespace TestAligns { - -template struct my_union { - alignas(T...) char buffer[1024]; -}; - -template struct my_union2 { - _Alignas(T...) char buffer[1024]; -}; - -struct alignas(8) A { char c; }; -struct alignas(4) B { short s; }; -struct C { char a[16]; }; - -// CHECK: ClassTemplateSpecializationDecl {{.*}} struct my_union -// CHECK: CXXRecordDecl {{.*}} implicit struct my_union -// CHECK: FieldDecl {{.*}} buffer 'char[1024]' -// CHECK-NEXT: AlignedAttr {{.*}} alignas 'TestAligns::A' -// CHECK-NEXT: AlignedAttr {{.*}} alignas 'TestAligns::B' -// CHECK-NEXT: AlignedAttr {{.*}} alignas 'TestAligns::C' -my_union my_union_val; - -// CHECK: ClassTemplateSpecializationDecl {{.*}} struct my_union2 -// CHECK: CXXRecordDecl {{.*}} implicit struct my_union2 -// CHECK: FieldDecl {{.*}} buffer 'char[1024]' -// CHECK-NEXT: AlignedAttr {{.*}} _Alignas 'TestAligns::A' -// CHECK-NEXT: AlignedAttr {{.*}} _Alignas 'TestAligns::B' -// CHECK-NEXT: AlignedAttr {{.*}} _Alignas 'TestAligns::C' -my_union2 my_union2_val; - -} // namespace TestAligns - -int __attribute__((cdecl)) TestOne(void), TestTwo(void); -// CHECK: FunctionDecl{{.*}}TestOne{{.*}}__attribute__((cdecl)) -// CHECK: FunctionDecl{{.*}}TestTwo{{.*}}__attribute__((cdecl)) - -void func() { - auto Test = []() __attribute__((no_thread_safety_analysis)) {}; - // CHECK: CXXMethodDecl{{.*}}operator() 'void () const' - // CHECK: NoThreadSafetyAnalysisAttr - - // Because GNU's noreturn applies to the function type, and this lambda does - // not have a capture list, the call operator and the function pointer - // conversion should both be noreturn, but the method should not contain a - // NoReturnAttr because the attribute applied to the type. - auto Test2 = []() __attribute__((noreturn)) { while(1); }; - // CHECK: CXXMethodDecl{{.*}}operator() 'void () __attribute__((noreturn)) const' - // CHECK-NOT: NoReturnAttr - // CHECK: CXXConversionDecl{{.*}}operator void (*)() __attribute__((noreturn)) -} - -namespace PR20930 { -struct S { - struct { int Test __attribute__((deprecated)); }; - // CHECK: FieldDecl{{.*}}Test 'int' - // CHECK-NEXT: DeprecatedAttr -}; - -void f() { - S s; - s.Test = 1; - // CHECK: IndirectFieldDecl{{.*}}Test 'int' - // CHECK: DeprecatedAttr -} -} - -struct __attribute__((objc_bridge_related(NSParagraphStyle,,))) TestBridgedRef; -// CHECK: CXXRecordDecl{{.*}} struct TestBridgedRef -// CHECK-NEXT: ObjCBridgeRelatedAttr{{.*}} NSParagraphStyle - -void TestExternalSourceSymbolAttr1() -__attribute__((external_source_symbol(language="Swift", defined_in="module", generated_declaration))); -// CHECK: FunctionDecl{{.*}} TestExternalSourceSymbolAttr1 -// CHECK-NEXT: ExternalSourceSymbolAttr{{.*}} "Swift" "module" GeneratedDeclaration - -void TestExternalSourceSymbolAttr2() -__attribute__((external_source_symbol(defined_in="module", language="Swift"))); -// CHECK: FunctionDecl{{.*}} TestExternalSourceSymbolAttr2 -// CHECK-NEXT: ExternalSourceSymbolAttr{{.*}} "Swift" "module" ""{{$}} - -void TestExternalSourceSymbolAttr3() -__attribute__((external_source_symbol(generated_declaration, language="Objective-C++", defined_in="module"))); -// CHECK: FunctionDecl{{.*}} TestExternalSourceSymbolAttr3 -// CHECK-NEXT: ExternalSourceSymbolAttr{{.*}} "Objective-C++" "module" GeneratedDeclaration - -void TestExternalSourceSymbolAttr4() -__attribute__((external_source_symbol(defined_in="Some external file.cs", generated_declaration, language="C Sharp"))); -// CHECK: FunctionDecl{{.*}} TestExternalSourceSymbolAttr4 -// CHECK-NEXT: ExternalSourceSymbolAttr{{.*}} "C Sharp" "Some external file.cs" GeneratedDeclaration - -void TestExternalSourceSymbolAttr5() -__attribute__((external_source_symbol(generated_declaration, defined_in="module", language="Swift"))); -// CHECK: FunctionDecl{{.*}} TestExternalSourceSymbolAttr5 -// CHECK-NEXT: ExternalSourceSymbolAttr{{.*}} "Swift" "module" GeneratedDeclaration - -void TestExternalSourceSymbolAttr6() -__attribute__((external_source_symbol(generated_declaration, defined_in="module", language="Swift", USR="testUSR"))); -// CHECK: FunctionDecl{{.*}} TestExternalSourceSymbolAttr6 -// CHECK-NEXT: ExternalSourceSymbolAttr{{.*}} "Swift" "module" GeneratedDeclaration "testUSR" - -namespace TestNoEscape { - void noescapeFunc(int *p0, __attribute__((noescape)) int *p1) {} - // CHECK: `-FunctionDecl{{.*}} noescapeFunc 'void (int *, __attribute__((noescape)) int *)' - // CHECK-NEXT: ParmVarDecl - // CHECK-NEXT: ParmVarDecl - // CHECK-NEXT: NoEscapeAttr -} - -namespace TestSuppress { - [[gsl::suppress("at-namespace")]]; - // CHECK: NamespaceDecl{{.*}} TestSuppress - // CHECK-NEXT: EmptyDecl{{.*}} - // CHECK-NEXT: SuppressAttr{{.*}} at-namespace - [[gsl::suppress("on-decl")]] - void TestSuppressFunction(); - // CHECK: FunctionDecl{{.*}} TestSuppressFunction - // CHECK-NEXT: SuppressAttr{{.*}} on-decl - - void f() { - int *i; - - [[gsl::suppress("on-stmt")]] { - // CHECK: AttributedStmt - // CHECK-NEXT: SuppressAttr{{.*}} on-stmt - // CHECK-NEXT: CompoundStmt - i = reinterpret_cast(7); - } - } -} - -namespace TestLifetimeCategories { -class [[gsl::Owner(int)]] AOwner{}; -// CHECK: CXXRecordDecl{{.*}} class AOwner -// CHECK: OwnerAttr {{.*}} int -class [[gsl::Pointer(int)]] APointer{}; -// CHECK: CXXRecordDecl{{.*}} class APointer -// CHECK: PointerAttr {{.*}} int - -class [[gsl::Pointer]] PointerWithoutArgument{}; -// CHECK: CXXRecordDecl{{.*}} class PointerWithoutArgument -// CHECK: PointerAttr - -class [[gsl::Owner]] OwnerWithoutArgument{}; -// CHECK: CXXRecordDecl{{.*}} class OwnerWithoutArgument -// CHECK: OwnerAttr -} // namespace TestLifetimeCategories - -// Verify the order of attributes in the Ast. It must reflect the order -// in the parsed source. -int mergeAttrTest() __attribute__((deprecated)) __attribute__((warn_unused_result)); -int mergeAttrTest() __attribute__((annotate("test"))); -int mergeAttrTest() __attribute__((unused,no_thread_safety_analysis)); -// CHECK: FunctionDecl{{.*}} mergeAttrTest -// CHECK-NEXT: DeprecatedAttr -// CHECK-NEXT: WarnUnusedResultAttr - -// CHECK: FunctionDecl{{.*}} mergeAttrTest -// CHECK-NEXT: DeprecatedAttr{{.*}} Inherited -// CHECK-NEXT: WarnUnusedResultAttr{{.*}} Inherited -// CHECK-NEXT: AnnotateAttr{{.*}} - -// CHECK: FunctionDecl{{.*}} mergeAttrTest -// CHECK-NEXT: DeprecatedAttr{{.*}} Inherited -// CHECK-NEXT: WarnUnusedResultAttr{{.*}} Inherited -// CHECK-NEXT: AnnotateAttr{{.*}} Inherited -// CHECK-NEXT: UnusedAttr -// CHECK-NEXT: NoThreadSafetyAnalysisAttr +// Test without serialization: +// RUN: %clang_cc1 -triple x86_64-pc-linux -std=c++11 -Wno-deprecated-declarations -ast-dump -ast-dump-filter Test %s \ +// RUN: | FileCheck --strict-whitespace %s +// +// Test with serialization: +// RUN: %clang_cc1 -triple x86_64-pc-linux -std=c++11 -Wno-deprecated-declarations -emit-pch -o %t %s +// RUN: %clang_cc1 -x c++ -triple x86_64-pc-linux -std=c++11 -Wno-deprecated-declarations \ +// RUN: -include-pch %t -ast-dump-all -ast-dump-filter Test /dev/null \ +// RUN: | sed -e "s/ //" -e "s/ imported//" \ +// RUN: | FileCheck --strict-whitespace %s + +int TestLocation +__attribute__((unused)); +// CHECK: VarDecl 0x{{.+}} <{{.+}}> col:5 TestLocation 'int' +// CHECK-NEXT: typeDetails: BuiltinType +// CHECK-NEXT: `-attrDetails: UnusedAttr 0x{{.+}} <{{.+}}> unused + +int TestIndent +__attribute__((unused)); +// CHECK: VarDecl 0x{{.+}} <{{.+}}> col:5 TestIndent 'int' +// CHECK-NEXT: typeDetails: BuiltinType +// CHECK-NEXT: `-attrDetails: UnusedAttr 0x{{.+}} <{{.+}}> unused + +void TestAttributedStmt() { + switch (1) { + case 1: + [[clang::fallthrough]]; + case 2: + ; + } +} +// CHECK: FunctionDecl{{.*}}TestAttributedStmt +// CHECK-NEXT: `-CompoundStmt 0x{{.+}} <{{.+}}> +// CHECK-NEXT: `-SwitchStmt 0x{{.+}} <{{.+}}> +// CHECK-NEXT: |-IntegerLiteral 0x{{.+}} <{{.+}}> 'int' 1 +// CHECK-NEXT: `-CompoundStmt 0x{{.+}} <{{.+}}> +// CHECK-NEXT: |-CaseStmt 0x{{.+}} <{{.+}}> +// CHECK-NEXT: | |-ConstantExpr 0x{{.+}} <{{.+}}> 'int' +// CHECK-NEXT: | | |-value: Int 1 +// CHECK-NEXT: | | `-IntegerLiteral 0x{{.+}} <{{.+}}> 'int' 1 +// CHECK-NEXT: | `-AttributedStmt 0x{{.+}} <{{.+}}> +// CHECK-NEXT: | |-attrDetails: FallThroughAttr 0x{{.+}} <{{.+}}> +// CHECK-NEXT: | `-NullStmt 0x{{.+}} <{{.+}}> +// CHECK-NEXT: `-CaseStmt 0x{{.+}} <{{.+}}> +// CHECK-NEXT: |-ConstantExpr 0x{{.+}} <{{.+}}> 'int' +// CHECK-NEXT: | |-value: Int 2 +// CHECK-NEXT: | `-IntegerLiteral 0x{{.+}} <{{.+}}> 'int' 2 +// CHECK-NEXT: `-NullStmt 0x{{.+}} <{{.+}}> + +[[clang::warn_unused_result]] int TestCXX11DeclAttr(); +// CHECK: FunctionDecl{{.*}}TestCXX11DeclAttr +// CHECK-NEXT: attrDetails: WarnUnusedResultAttr + +int TestAlignedNull __attribute__((aligned)); +// CHECK: VarDecl{{.*}}TestAlignedNull +// CHECK-NEXT: typeDetails: BuiltinType +// CHECK-NEXT: attrDetails: AlignedAttr {{.*}} aligned +// CHECK-NEXT: <<>> + +int TestAlignedExpr __attribute__((aligned(4))); +// CHECK: VarDecl{{.*}}TestAlignedExpr +// CHECK-NEXT: typeDetails: BuiltinType +// CHECK-NEXT: attrDetails: AlignedAttr {{.*}} aligned +// CHECK-NEXT: ConstantExpr +// CHECK-NEXT: value: Int 4 +// CHECK-NEXT: IntegerLiteral + +int TestEnum __attribute__((visibility("default"))); +// CHECK: VarDecl{{.*}}TestEnum +// CHECK-NEXT: typeDetails: BuiltinType +// CHECK-NEXT: attrDetails: VisibilityAttr{{.*}} Default + +class __attribute__((lockable)) Mutex { +} mu1, mu2; +int TestExpr __attribute__((guarded_by(mu1))); +// CHECK: VarDecl{{.*}}TestExpr +// CHECK-NEXT: typeDetails: BuiltinType +// CHECK-NEXT: attrDetails: GuardedByAttr +// CHECK-NEXT: DeclRefExpr{{.*}}mu1 + +class Mutex TestVariadicExpr __attribute__((acquired_after(mu1, mu2))); +// CHECK: VarDecl{{.*}}TestVariadicExpr +// CHECK: attrDetails: AcquiredAfterAttr +// CHECK-NEXT: DeclRefExpr{{.*}}mu1 +// CHECK-NEXT: DeclRefExpr{{.*}}mu2 + +void function1(void *) { + int TestFunction __attribute__((cleanup(function1))); +} +// CHECK: VarDecl{{.*}}TestFunction +// CHECK-NEXT: typeDetails: BuiltinType +// CHECK-NEXT: attrDetails: CleanupAttr{{.*}} Function{{.*}}function1 + +void TestIdentifier(void *, int) +__attribute__((pointer_with_type_tag(ident1,1,2))); +// CHECK: FunctionDecl{{.*}}TestIdentifier +// CHECK: typeDetails: BuiltinType +// CHECK: attrDetails: ArgumentWithTypeTagAttr{{.*}} pointer_with_type_tag ident1 + +void TestBool(void *, int) +__attribute__((pointer_with_type_tag(bool1,1,2))); +// CHECK: FunctionDecl{{.*}}TestBool +// CHECK: typeDetails: BuiltinType +// CHECK: attrDetails: ArgumentWithTypeTagAttr{{.*}}pointer_with_type_tag bool1 1 2 IsPointer + +void TestUnsigned(void *, int) +__attribute__((pointer_with_type_tag(unsigned1,1,2))); +// CHECK: FunctionDecl{{.*}}TestUnsigned +// CHECK: typeDetails: BuiltinType +// CHECK: attrDetails: ArgumentWithTypeTagAttr{{.*}} pointer_with_type_tag unsigned1 1 2 + +void TestInt(void) __attribute__((constructor(123))); +// CHECK: FunctionDecl{{.*}}TestInt +// CHECK-NEXT: attrDetails: ConstructorAttr{{.*}} 123 + +static int TestString __attribute__((alias("alias1"))); +// CHECK: VarDecl{{.*}}TestString +// CHECK-NEXT: typeDetails: BuiltinType +// CHECK-NEXT: attrDetails: AliasAttr{{.*}} "alias1" + +extern struct s1 TestType +__attribute__((type_tag_for_datatype(ident1,int))); +// CHECK: VarDecl{{.*}}TestType +// CHECK-NEXT: |-typeDetails: ElaboratedType 0x{{.+}} 'struct s1' sugar +// CHECK-NEXT: | `-typeDetails: RecordType 0x{{.+}} 's1' +// CHECK-NEXT: | `-CXXRecord 0x{{.+}} 's1' +// CHECK-NEXT: `-attrDetails: TypeTagForDatatypeAttr 0x{{.+}} <{{.+}}> ident1 int + +void TestLabel() { +L: __attribute__((unused)) int i; +// CHECK: LabelStmt{{.*}}'L' +// CHECK: VarDecl{{.*}}i 'int' +// CHECK-NEXT: typeDetails: BuiltinType +// CHECK-NEXT: attrDetails: UnusedAttr{{.*}} + +M: __attribute(()) int j; +// CHECK: LabelStmt {{.*}} 'M' +// CHECK-NEXT: DeclStmt +// CHECK-NEXT: VarDecl {{.*}} j 'int' + +N: __attribute(()) ; +// CHECK: LabelStmt {{.*}} 'N' +// CHECK-NEXT: NullStmt +} + +namespace Test { +extern "C" int printf(const char *format, ...); +// CHECK: | `-FunctionDecl {{.*}} printf 'int (const char *, ...)' +// CHECK: | |-ParmVarDecl {{.*}} format 'const char *' +// CHECK: | | `-typeDetails: PointerType {{.*}} 'const char *' +// CHECK: | | `-qualTypeDetail: QualType {{.*}} 'const char' const +// CHECK: | | `-typeDetails: BuiltinType {{.*}} 'char' +// CHECK: | |-attrDetails: BuiltinAttr {{.*}} <> Implicit 1057 +// CHECK: | `-attrDetails: FormatAttr {{.*}} Implicit printf 1 2 + +alignas(8) extern int x; +extern int x; +// CHECK: VarDecl{{.*}} x 'int' +// CHECK: VarDecl{{.*}} x 'int' +// CHECK-NEXT: typeDetails: BuiltinType +// CHECK-NEXT: attrDetails: AlignedAttr{{.*}} Inherited +} + +namespace TestAligns { + +template struct my_union { + alignas(T...) char buffer[1024]; +}; + +template struct my_union2 { + _Alignas(T...) char buffer[1024]; +}; + +struct alignas(8) A { char c; }; +struct alignas(4) B { short s; }; +struct C { char a[16]; }; + +// CHECK: ClassTemplateSpecializationDecl {{.*}} struct my_union + +// CHECK: CXXRecordDecl {{.*}} implicit struct my_union +// CHECK: FieldDecl {{.*}} buffer 'char[1024]' +// CHECK-NEXT: attrDetails: AlignedAttr {{.*}} alignas 'TestAligns::A' +// CHECK-NEXT: attrDetails: AlignedAttr {{.*}} alignas 'TestAligns::B' +// CHECK-NEXT: attrDetails: AlignedAttr {{.*}} alignas 'TestAligns::C' +my_union my_union_val; + +// CHECK: ClassTemplateSpecializationDecl {{.*}} struct my_union2 +// CHECK: CXXRecordDecl {{.*}} implicit struct my_union2 +// CHECK: FieldDecl {{.*}} buffer 'char[1024]' +// CHECK-NEXT: attrDetails: AlignedAttr {{.*}} _Alignas 'TestAligns::A' +// CHECK-NEXT: attrDetails: AlignedAttr {{.*}} _Alignas 'TestAligns::B' +// CHECK-NEXT: attrDetails: AlignedAttr {{.*}} _Alignas 'TestAligns::C' +my_union2 my_union2_val; + +} // namespace TestAligns + +int __attribute__((cdecl)) TestOne(void), TestTwo(void); +// CHECK: FunctionDecl{{.*}}TestOne{{.*}}__attribute__((cdecl)) +// CHECK: FunctionDecl{{.*}}TestTwo{{.*}}__attribute__((cdecl)) + +void func() { + auto Test = []() __attribute__((no_thread_safety_analysis)) {}; + // CHECK: CXXMethodDecl{{.*}}operator() 'void () const' + // CHECK: NoThreadSafetyAnalysisAttr + + // Because GNU's noreturn applies to the function type, and this lambda does + // not have a capture list, the call operator and the function pointer + // conversion should both be noreturn, but the method should not contain a + // NoReturnAttr because the attribute applied to the type. + auto Test2 = []() __attribute__((noreturn)) { while(1); }; + // CHECK: CXXMethodDecl{{.*}}operator() 'void () __attribute__((noreturn)) const' + // CHECK-NOT: NoReturnAttr + // CHECK: CXXConversionDecl{{.*}}operator void (*)() __attribute__((noreturn)) +} + +namespace PR20930 { +struct S { + struct { int Test __attribute__((deprecated)); }; + // CHECK: FieldDecl{{.*}}Test 'int' + // CHECK-NEXT: DeprecatedAttr +}; + +void f() { + S s; + s.Test = 1; + // CHECK: IndirectFieldDecl{{.*}}Test 'int' + // CHECK: attrDetails: DeprecatedAttr +} +} + +struct __attribute__((objc_bridge_related(NSParagraphStyle,,))) TestBridgedRef; +// CHECK: CXXRecordDecl{{.*}} struct TestBridgedRef +// CHECK-NEXT: attrDetails: ObjCBridgeRelatedAttr{{.*}} NSParagraphStyle + +void TestExternalSourceSymbolAttr1() +__attribute__((external_source_symbol(language="Swift", defined_in="module", generated_declaration))); +// CHECK: FunctionDecl{{.*}} TestExternalSourceSymbolAttr1 +// CHECK-NEXT: attrDetails: ExternalSourceSymbolAttr{{.*}} "Swift" "module" GeneratedDeclaration + +void TestExternalSourceSymbolAttr2() +__attribute__((external_source_symbol(defined_in="module", language="Swift"))); +// CHECK: FunctionDecl{{.*}} TestExternalSourceSymbolAttr2 +// CHECK-NEXT: attrDetails: ExternalSourceSymbolAttr{{.*}} "Swift" "module" ""{{$}} + +void TestExternalSourceSymbolAttr3() +__attribute__((external_source_symbol(generated_declaration, language="Objective-C++", defined_in="module"))); +// CHECK: FunctionDecl{{.*}} TestExternalSourceSymbolAttr3 +// CHECK-NEXT: attrDetails: ExternalSourceSymbolAttr{{.*}} "Objective-C++" "module" GeneratedDeclaration + +void TestExternalSourceSymbolAttr4() +__attribute__((external_source_symbol(defined_in="Some external file.cs", generated_declaration, language="C Sharp"))); +// CHECK: FunctionDecl{{.*}} TestExternalSourceSymbolAttr4 +// CHECK-NEXT: attrDetails: ExternalSourceSymbolAttr{{.*}} "C Sharp" "Some external file.cs" GeneratedDeclaration + +void TestExternalSourceSymbolAttr5() +__attribute__((external_source_symbol(generated_declaration, defined_in="module", language="Swift"))); +// CHECK: FunctionDecl{{.*}} TestExternalSourceSymbolAttr5 +// CHECK-NEXT: attrDetails: ExternalSourceSymbolAttr{{.*}} "Swift" "module" GeneratedDeclaration + +void TestExternalSourceSymbolAttr6() +__attribute__((external_source_symbol(generated_declaration, defined_in="module", language="Swift", USR="testUSR"))); +// CHECK: FunctionDecl{{.*}} TestExternalSourceSymbolAttr6 +// CHECK-NEXT: attrDetails: ExternalSourceSymbolAttr{{.*}} "Swift" "module" GeneratedDeclaration "testUSR" + +namespace TestNoEscape { + void noescapeFunc(int *p0, __attribute__((noescape)) int *p1) {} + // CHECK: `-FunctionDecl{{.*}} noescapeFunc 'void (int *, __attribute__((noescape)) int *)' + // CHECK: ParmVarDecl + // CHECK: ParmVarDecl + // CHECK: -attrDetails: NoEscapeAttr +} + +namespace TestSuppress { + [[gsl::suppress("at-namespace")]]; + // CHECK: NamespaceDecl{{.*}} TestSuppress + // CHECK-NEXT: EmptyDecl{{.*}} + // CHECK-NEXT: SuppressAttr{{.*}} at-namespace + [[gsl::suppress("on-decl")]] + void TestSuppressFunction(); + // CHECK: FunctionDecl{{.*}} TestSuppressFunction + // CHECK-NEXT: SuppressAttr{{.*}} on-decl + + void f() { + int *i; + + [[gsl::suppress("on-stmt")]] { + // CHECK: AttributedStmt + // CHECK-NEXT: SuppressAttr{{.*}} on-stmt + // CHECK-NEXT: CompoundStmt + i = reinterpret_cast(7); + } + } +} + +namespace TestLifetimeCategories { +class [[gsl::Owner(int)]] AOwner{}; +// CHECK: CXXRecordDecl{{.*}} class AOwner +// CHECK: attrDetails: OwnerAttr {{.*}} int +class [[gsl::Pointer(int)]] APointer{}; +// CHECK: CXXRecordDecl{{.*}} class APointer +// CHECK: attrDetails: PointerAttr {{.*}} int + +class [[gsl::Pointer]] PointerWithoutArgument{}; +// CHECK: CXXRecordDecl{{.*}} class PointerWithoutArgument +// CHECK: attrDetails: PointerAttr + +class [[gsl::Owner]] OwnerWithoutArgument{}; +// CHECK: CXXRecordDecl{{.*}} class OwnerWithoutArgument +// CHECK: attrDetails: OwnerAttr +} // namespace TestLifetimeCategories + +// Verify the order of attributes in the Ast. It must reflect the order +// in the parsed source. +int mergeAttrTest() __attribute__((deprecated)) __attribute__((warn_unused_result)); +int mergeAttrTest() __attribute__((annotate("test"))); +int mergeAttrTest() __attribute__((unused,no_thread_safety_analysis)); +// CHECK: FunctionDecl{{.*}} mergeAttrTest +// CHECK-NEXT: attrDetails: DeprecatedAttr +// CHECK-NEXT: attrDetails: WarnUnusedResultAttr + +// CHECK: FunctionDecl{{.*}} mergeAttrTest +// CHECK-NEXT: attrDetails: DeprecatedAttr{{.*}} Inherited +// CHECK-NEXT: attrDetails: WarnUnusedResultAttr{{.*}} Inherited +// CHECK-NEXT: attrDetails: AnnotateAttr{{.*}} + +// CHECK: FunctionDecl{{.*}} mergeAttrTest +// CHECK-NEXT: attrDetails: DeprecatedAttr{{.*}} Inherited +// CHECK-NEXT: attrDetails: WarnUnusedResultAttr{{.*}} Inherited +// CHECK-NEXT: attrDetails: AnnotateAttr{{.*}} Inherited +// CHECK-NEXT: attrDetails: UnusedAttr +// CHECK-NEXT: attrDetails: NoThreadSafetyAnalysisAttr diff --git a/clang/test/AST/ast-dump-attr.m b/clang/test/AST/ast-dump-attr.m index eef07384b84fa..819e70c730f53 100644 --- a/clang/test/AST/ast-dump-attr.m +++ b/clang/test/AST/ast-dump-attr.m @@ -58,11 +58,11 @@ -(void)Test9 [[clang::ns_consumes_self]]; -(void) [[clang::ns_consumes_self]] Test10: (int)Test11; // CHECK: ObjCMethodDecl{{.*}} Test10: 'void' // CHECK-NEXT: |-ParmVarDecl{{.*}} Test11 'int' -// CHECK-NEXT: `-NSConsumesSelfAttr +// CHECK: `-attrDetails: NSConsumesSelfAttr -(void)Test12: (int *) [[clang::noescape]] Test13 to:(int)Test14 [[clang::ns_consumes_self]]; // CHECK: ObjCMethodDecl{{.*}} Test12:to: 'void' // CHECK-NEXT: |-ParmVarDecl{{.*}} Test13 'int *' -// CHECK-NEXT: | `-NoEscapeAttr +// CHECK: | `-attrDetails: NoEscapeAttr // CHECK-NEXT: |-ParmVarDecl{{.*}} Test14 'int' -// CHECK-NEXT: `-NSConsumesSelfAttr +// CHECK: `-attrDetails: NSConsumesSelfAttr @end diff --git a/clang/test/AST/ast-dump-c-attr.c b/clang/test/AST/ast-dump-c-attr.c index c8e0d89827f80..3afd3623fe489 100644 --- a/clang/test/AST/ast-dump-c-attr.c +++ b/clang/test/AST/ast-dump-c-attr.c @@ -13,42 +13,44 @@ int Test1 [[deprecated]]; // CHECK: VarDecl{{.*}}Test1 -// CHECK-NEXT: DeprecatedAttr 0x{{[^ ]*}} "" "" +// CHECK-NEXT: typeDetails: BuiltinType +// CHECK-NEXT: attrDetails: DeprecatedAttr 0x{{[^ ]*}} "" "" enum [[deprecated("Frobble")]] Test2 { Test3 [[deprecated]] }; // CHECK: EnumDecl{{.*}}Test2 -// CHECK-NEXT: DeprecatedAttr 0x{{[^ ]*}} "Frobble" "" +// CHECK-NEXT: attrDetails: DeprecatedAttr 0x{{[^ ]*}} "Frobble" "" // CHECK-NEXT: EnumConstantDecl{{.*}}Test3 -// CHECK-NEXT: DeprecatedAttr 0x{{[^ ]*}} "" "" +// CHECK-NEXT: attrDetails: DeprecatedAttr 0x{{[^ ]*}} "" "" struct [[deprecated]] Test4 { [[deprecated("Frobble")]] int Test5, Test6; int Test7 [[deprecated]] : 12; }; // CHECK: RecordDecl{{.*}}Test4 -// CHECK-NEXT: DeprecatedAttr 0x{{[^ ]*}} "" "" +// CHECK-NEXT: attrDetails: DeprecatedAttr 0x{{[^ ]*}} "" "" // CHECK-NEXT: FieldDecl{{.*}}Test5 -// CHECK-NEXT: DeprecatedAttr 0x{{[^ ]*}} "Frobble" "" +// CHECK-NEXT: attrDetails: DeprecatedAttr 0x{{[^ ]*}} "Frobble" "" // CHECK-NEXT: FieldDecl{{.*}}Test6 -// CHECK-NEXT: DeprecatedAttr 0x{{[^ ]*}} "Frobble" "" +// CHECK-NEXT: attrDetails: DeprecatedAttr 0x{{[^ ]*}} "Frobble" "" // CHECK-NEXT: FieldDecl{{.*}}Test7 // CHECK-NEXT: ConstantExpr{{.*}}'int' // CHECK-NEXT: value: Int 12 // CHECK-NEXT: IntegerLiteral{{.*}}'int' 12 -// CHECK-NEXT: DeprecatedAttr 0x{{[^ ]*}} "" "" +// CHECK-NEXT: attrDetails: DeprecatedAttr 0x{{[^ ]*}} "" "" struct [[deprecated]] Test8; // CHECK: RecordDecl{{.*}}Test8 -// CHECK-NEXT: DeprecatedAttr 0x{{[^ ]*}} "" "" +// CHECK-NEXT: attrDetails: DeprecatedAttr 0x{{[^ ]*}} "" "" [[deprecated]] void Test9(int Test10 [[deprecated]]); // CHECK: FunctionDecl{{.*}}Test9 // CHECK-NEXT: ParmVarDecl{{.*}}Test10 -// CHECK-NEXT: DeprecatedAttr 0x{{[^ ]*}} "" "" -// CHECK-NEXT: DeprecatedAttr 0x{{[^ ]*}} "" "" +// CHECK-NEXT: typeDetails: BuiltinType +// CHECK-NEXT: attrDetails: DeprecatedAttr 0x{{[^ ]*}} "" "" +// CHECK-NEXT: attrDetails: DeprecatedAttr 0x{{[^ ]*}} "" "" void Test11 [[deprecated]](void); // CHECK: FunctionDecl{{.*}}Test11 -// CHECK-NEXT: DeprecatedAttr 0x{{[^ ]*}} "" "" +// CHECK-NEXT: attrDetails: DeprecatedAttr 0x{{[^ ]*}} "" "" diff --git a/clang/test/AST/ast-dump-comment.cpp b/clang/test/AST/ast-dump-comment.cpp index 40c3edb62821b..ac797f53d614e 100644 --- a/clang/test/AST/ast-dump-comment.cpp +++ b/clang/test/AST/ast-dump-comment.cpp @@ -11,17 +11,17 @@ /// Aaa int TestLocation; // CHECK: VarDecl{{.*}}TestLocation -// CHECK-NEXT: FullComment 0x{{[^ ]*}} +// CHECK: FullComment 0x{{[^ ]*}} /// int TestIndent; // CHECK: {{^VarDecl.*TestIndent[^()]*$}} -// CHECK-NEXT: {{^`-FullComment.*>$}} +// CHECK: {{^`-FullComment.*>$}} /// Aaa int Test_TextComment; // CHECK: VarDecl{{.*}}Test_TextComment -// CHECK-NEXT: FullComment +// CHECK: FullComment // CHECK-NEXT: ParagraphComment // CHECK-NEXT: TextComment{{.*}} Text=" Aaa" @@ -82,7 +82,7 @@ int Test_InlineCommandCommentRelates; ///
int Test_HTMLTagComment; // CHECK: VarDecl{{.*}}Test_HTMLTagComment -// CHECK-NEXT: FullComment +// CHECK: FullComment // CHECK-NEXT: ParagraphComment // CHECK-NEXT: TextComment{{.*}} Text=" " // CHECK-NEXT: HTMLStartTagComment{{.*}} Name="a" @@ -96,7 +96,7 @@ int Test_HTMLTagComment; /// >Aaab int Test_HTMLTagMultilineBCPL; // CHECK: VarDecl{{.*}}Test_HTMLTagMultilineBCPL -// CHECK-NEXT: FullComment +// CHECK: FullComment // CHECK-NEXT: ParagraphComment // CHECK-NEXT: TextComment{{.*}} Text=" " // CHECK-NEXT: HTMLStartTagComment{{.*}} Name="a" Attrs: "href="foo" diff --git a/clang/test/AST/ast-dump-concepts.cpp b/clang/test/AST/ast-dump-concepts.cpp index 84d981d2ab8de..16ea4cefaa562 100644 --- a/clang/test/AST/ast-dump-concepts.cpp +++ b/clang/test/AST/ast-dump-concepts.cpp @@ -21,14 +21,14 @@ struct Foo { // CHECK-NEXT: `-ConceptSpecializationExpr {{.*}} 'bool' Concept {{.*}} 'binary_concept' // CHECK-NEXT: |-ImplicitConceptSpecializationDecl {{.*}} col:9 // CHECK-NEXT: | |-TemplateArgument type 'type-parameter-1-0' - // CHECK-NEXT: | | `-TemplateTypeParmType {{.*}} 'type-parameter-1-0' dependent {{.*}}depth 1 index 0 + // CHECK-NEXT: | | `-typeDetails: TemplateTypeParmType {{.*}} 'type-parameter-1-0' dependent {{.*}}depth 1 index 0 // CHECK-NEXT: | `-TemplateArgument type 'int' - // CHECK-NEXT: | `-BuiltinType {{.*}} 'int' + // CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: |-TemplateArgument {{.*}} type 'R' - // CHECK-NEXT: | `-TemplateTypeParmType {{.*}} 'R' + // CHECK-NEXT: | `-typeDetails: TemplateTypeParmType {{.*}} 'R' // CHECK-NEXT: | `-TemplateTypeParm {{.*}} 'R' // CHECK-NEXT: `-TemplateArgument {{.*}} type 'int' - // CHECK-NEXT: `-BuiltinType {{.*}} 'int' + // CHECK-NEXT: `-typeDetails: BuiltinType {{.*}} 'int' template R> Foo(R); @@ -36,7 +36,7 @@ struct Foo { // CHECK-NEXT: `-ConceptSpecializationExpr {{.*}} 'bool' // CHECK-NEXT: |-ImplicitConceptSpecializationDecl {{.*}} col:9 // CHECK-NEXT: | `-TemplateArgument type 'type-parameter-1-0' - // CHECK-NEXT: | `-TemplateTypeParmType {{.*}} 'type-parameter-1-0' dependent {{.*}}depth 1 index 0 + // CHECK-NEXT: | `-typeDetails: TemplateTypeParmType {{.*}} 'type-parameter-1-0' dependent {{.*}}depth 1 index 0 template Foo(R); @@ -79,27 +79,27 @@ concept Foo = C; // CHECK: TemplateTypeParmDecl {{.*}} Concept {{.*}} 'C' (UsingShadow {{.*}} 'C') // CHECK: QualType -// CHECK-NEXT: `-BuiltinType {{.*}} 'bool' +// CHECK-NEXT: `-typeDetails: BuiltinType {{.*}} 'bool' template constexpr bool FooVar = false; // CHECK: ConceptSpecializationExpr {{.*}} UsingShadow {{.*}} 'C' // CHECK: QualType -// CHECK-NEXT: `-BuiltinType {{.*}} 'bool' +// CHECK-NEXT: `-typeDetails: BuiltinType {{.*}} 'bool' template requires C constexpr bool FooVar2 = true; // CHECK: SimpleRequirement // CHECK-NEXT: `-ConceptSpecializationExpr {{.*}} UsingShadow {{.*}} 'C' // CHECK: QualType -// CHECK-NEXT: `-BuiltinType {{.*}} 'bool' +// CHECK-NEXT: `-typeDetails: BuiltinType {{.*}} 'bool' template requires requires (T) { C; } constexpr bool FooVar3 = true; // CHECK: NonTypeTemplateParmDecl // CHECK-NEXT: `-ConceptSpecializationExpr {{.*}} UsingShadow {{.*}} 'C' // CHECK: QualType -// CHECK-NEXT: `-BuiltinType {{.*}} 'bool' +// CHECK-NEXT: `-typeDetails: BuiltinType {{.*}} 'bool' template constexpr bool FooVar4 = bool(T()); diff --git a/clang/test/AST/ast-dump-constant-var.cu b/clang/test/AST/ast-dump-constant-var.cu index cec93af5ff7bf..31ce048dc69fe 100644 --- a/clang/test/AST/ast-dump-constant-var.cu +++ b/clang/test/AST/ast-dump-constant-var.cu @@ -4,11 +4,11 @@ #include "Inputs/cuda.h" // CHECK-LABEL: VarDecl {{.*}} m1 'int' -// CHECK-NEXT: CUDAConstantAttr {{.*}}cuda.h +// CHECK: CUDAConstantAttr {{.*}}cuda.h __constant__ int m1; // CHECK-LABEL: VarDecl {{.*}} m2 'int' -// CHECK-NEXT: CUDAConstantAttr {{.*}}cuda.h +// CHECK: CUDAConstantAttr {{.*}}cuda.h // CHECK-NOT: CUDAConstantAttr __constant__ __constant__ int m2; diff --git a/clang/test/AST/ast-dump-coroutine.cpp b/clang/test/AST/ast-dump-coroutine.cpp index 39a6e7e5a3eee..b637a63134fea 100644 --- a/clang/test/AST/ast-dump-coroutine.cpp +++ b/clang/test/AST/ast-dump-coroutine.cpp @@ -1,67 +1,343 @@ -// RUN: %clang_cc1 -triple x86_64-unknown-unknown %s -std=c++20 \ -// RUN: -ast-dump -ast-dump-filter test | FileCheck %s - -#include "Inputs/std-coroutine.h" - -using namespace std; - -struct Task { - struct promise_type { - std::suspend_always initial_suspend() { return {}; } - Task get_return_object() { - return std::coroutine_handle::from_promise(*this); - } - std::suspend_always final_suspend() noexcept { return {}; } - std::suspend_always return_void() { return {}; } - void unhandled_exception() {} - - auto await_transform(int s) { - struct awaiter { - promise_type *promise; - bool await_ready() { return true; } - int await_resume() { return 1; } - void await_suspend(std::coroutine_handle<>) {} - }; - - return awaiter{this}; - } - }; - - Task(std::coroutine_handle promise); - - std::coroutine_handle handle; -}; - -Task test() { - co_await 1; -// Writen souce code, verify no implicit bit for the co_await expr. -// CHECK: CompoundStmt {{.*}} -// CHECK-NEXT: | `-ExprWithCleanups {{.*}} 'int' -// CHECK-NEXT: | `-CoawaitExpr {{.*}} 'int'{{$}} -// CHECK-NEXT: | |-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | |-MaterializeTemporaryExpr {{.*}} 'awaiter' -// CHECK-NEXT: | | `-CXXMemberCallExpr {{.*}} 'awaiter' -// CHECK-NEXT: | | |-MemberExpr {{.*}} .await_transform -} -// Verify the implicit AST nodes for coroutines. -// CHECK: |-DeclStmt {{.*}} -// CHECK-NEXT: | `-VarDecl {{.*}} implicit used __promise -// CHECK-NEXT: | `-CXXConstructExpr {{.*}} -// CHECK-NEXT: |-ExprWithCleanups {{.*}} 'void' -// CHECK-NEXT: | `-CoawaitExpr {{.*}} 'void' implicit -// CHECK-NEXT: |-CXXMemberCallExpr {{.*}} 'std::suspend_always' -// CHECK-NEXT: | | `-MemberExpr {{.*}} .initial_suspend -// ... -// CHECK: CoreturnStmt {{.*}} implicit - -Task test2() { -// Writen souce code, verify no implicit bit for the co_return expr. -// CHECK: CompoundStmt {{.*}} -// CHECK-NEXT: | `-CoreturnStmt {{.*}} {{$}} - co_return; -} -// Verify the implicit AST nodes for coroutines. -// CHECK: |-DeclStmt {{.*}} -// CHECK-NEXT: | `-VarDecl {{.*}} implicit used __promise -// ... -// CHECK: CoreturnStmt {{.*}} implicit +// RUN: %clang_cc1 -triple x86_64-unknown-unknown %s -std=c++20 \ +// RUN: -ast-dump -ast-dump-filter test | FileCheck %s + +#include "Inputs/std-coroutine.h" + +using namespace std; + +struct Task { + struct promise_type { + std::suspend_always initial_suspend() { return {}; } + Task get_return_object() { + return std::coroutine_handle::from_promise(*this); + } + std::suspend_always final_suspend() noexcept { return {}; } + std::suspend_always return_void() { return {}; } + void unhandled_exception() {} + + auto await_transform(int s) { + struct awaiter { + promise_type *promise; + bool await_ready() { return true; } + int await_resume() { return 1; } + void await_suspend(std::coroutine_handle<>) {} + }; + + return awaiter{this}; + } + }; + + Task(std::coroutine_handle promise); + + std::coroutine_handle handle; +}; + +Task test() { + co_await 1; +} + +// CHECK: FunctionDecl {{.*}} test 'Task ()' +// CHECK-NEXT: `-CoroutineBodyStmt {{.*}} +// CHECK-NEXT: |-CompoundStmt {{.*}} +// CHECK-NEXT: | `-ExprWithCleanups {{.*}} 'int' +// CHECK-NEXT: | `-CoawaitExpr {{.*}} 'int' +// CHECK-NEXT: | |-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | |-MaterializeTemporaryExpr {{.*}} 'awaiter' lvalue +// CHECK-NEXT: | | `-CXXMemberCallExpr {{.*}} 'awaiter' +// CHECK-NEXT: | | |-MemberExpr {{.*}} '' .await_transform {{.*}} +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | |-ExprWithCleanups {{.*}} 'bool' +// CHECK-NEXT: | | `-CXXMemberCallExpr {{.*}} 'bool' +// CHECK-NEXT: | | `-MemberExpr {{.*}} '' .await_ready {{.*}} +// CHECK-NEXT: | | `-OpaqueValueExpr {{.*}} 'awaiter' lvalue +// CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'awaiter' lvalue +// CHECK-NEXT: | | `-CXXMemberCallExpr {{.*}} 'awaiter' +// CHECK-NEXT: | | |-MemberExpr {{.*}} '' .await_transform {{.*}} +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | |-ExprWithCleanups {{.*}} 'void' +// CHECK-NEXT: | | `-CXXMemberCallExpr {{.*}} 'void' +// CHECK-NEXT: | | |-MemberExpr {{.*}} '' .await_suspend {{.*}} +// CHECK-NEXT: | | | `-OpaqueValueExpr {{.*}} 'awaiter' lvalue +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'awaiter' lvalue +// CHECK-NEXT: | | | `-CXXMemberCallExpr {{.*}} 'awaiter' +// CHECK-NEXT: | | | |-MemberExpr {{.*}} '' .await_transform {{.*}} +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-CXXConstructExpr {{.*}} 'std::coroutine_handle<>':'std::coroutine_handle' 'void (coroutine_handle &&) noexcept' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'coroutine_handle':'std::coroutine_handle' xvalue +// CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'coroutine_handle':'std::coroutine_handle' xvalue +// CHECK-NEXT: | | `-CallExpr {{.*}} 'coroutine_handle':'std::coroutine_handle' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'coroutine_handle (*)(void *) noexcept' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'coroutine_handle (void *) noexcept' lvalue CXXMethod {{.*}} 'from_address' 'coroutine_handle (void *) noexcept' +// CHECK-NEXT: | | `-CallExpr {{.*}} 'void *' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'void *(*)() noexcept' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'void *() noexcept' lvalue Function {{.*}} '__builtin_coro_frame' 'void *() noexcept' +// CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'int' +// CHECK-NEXT: | `-MemberExpr {{.*}} '' .await_resume {{.*}} +// CHECK-NEXT: | `-OpaqueValueExpr {{.*}} 'awaiter' lvalue +// CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'awaiter' lvalue +// CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'awaiter' +// CHECK-NEXT: | |-MemberExpr {{.*}} '' .await_transform {{.*}} +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: |-DeclStmt {{.*}} +// CHECK-NEXT: | `-VarDecl {{.*}} implicit used __promise 'std::coroutine_traits::promise_type':'Task::promise_type' callinit +// CHECK-NEXT: | |-CXXConstructExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' 'void () noexcept' +// CHECK-NEXT: | `-typeDetails: TypedefType {{.*}} 'std::coroutine_traits::promise_type' sugar +// CHECK-NEXT: | |-TypeAlias {{.*}} 'promise_type' +// CHECK-NEXT: | `-typeDetails: ElaboratedType {{.*}} 'typename Task::promise_type' sugar +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'Task::promise_type' +// CHECK-NEXT: | `-CXXRecord {{.*}} 'promise_type' +// CHECK-NEXT: |-ExprWithCleanups {{.*}} 'void' +// CHECK-NEXT: | `-CoawaitExpr {{.*}} 'void' implicit +// CHECK-NEXT: | |-CXXMemberCallExpr {{.*}} 'std::suspend_always' +// CHECK-NEXT: | | `-MemberExpr {{.*}} '' .initial_suspend {{.*}} +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: | |-MaterializeTemporaryExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | | `-CXXMemberCallExpr {{.*}} 'std::suspend_always' +// CHECK-NEXT: | | `-MemberExpr {{.*}} '' .initial_suspend {{.*}} +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: | |-ExprWithCleanups {{.*}} 'bool' +// CHECK-NEXT: | | `-CXXMemberCallExpr {{.*}} 'bool' +// CHECK-NEXT: | | `-MemberExpr {{.*}} '' .await_ready {{.*}} +// CHECK-NEXT: | | `-OpaqueValueExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | | `-CXXMemberCallExpr {{.*}} 'std::suspend_always' +// CHECK-NEXT: | | `-MemberExpr {{.*}} '' .initial_suspend {{.*}} +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: | |-ExprWithCleanups {{.*}} 'void' +// CHECK-NEXT: | | `-CXXMemberCallExpr {{.*}} 'void' +// CHECK-NEXT: | | |-MemberExpr {{.*}} '' .await_suspend {{.*}} +// CHECK-NEXT: | | | `-OpaqueValueExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | | | `-CXXMemberCallExpr {{.*}} 'std::suspend_always' +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .initial_suspend {{.*}} +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: | | `-CXXConstructExpr {{.*}} 'coroutine_handle<>':'std::coroutine_handle' 'void (coroutine_handle &&) noexcept' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'coroutine_handle':'std::coroutine_handle' xvalue +// CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'coroutine_handle':'std::coroutine_handle' xvalue +// CHECK-NEXT: | | `-CallExpr {{.*}} 'coroutine_handle':'std::coroutine_handle' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'coroutine_handle (*)(void *) noexcept' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'coroutine_handle (void *) noexcept' lvalue CXXMethod {{.*}} 'from_address' 'coroutine_handle (void *) noexcept' +// CHECK-NEXT: | | `-CallExpr {{.*}} 'void *' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'void *(*)() noexcept' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'void *() noexcept' lvalue Function {{.*}} '__builtin_coro_frame' 'void *() noexcept' +// CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'void' +// CHECK-NEXT: | `-MemberExpr {{.*}} '' .await_resume {{.*}} +// CHECK-NEXT: | `-OpaqueValueExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'std::suspend_always' +// CHECK-NEXT: | `-MemberExpr {{.*}} '' .initial_suspend {{.*}} +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: |-ExprWithCleanups {{.*}} 'void' +// CHECK-NEXT: | `-CoawaitExpr {{.*}} 'void' implicit +// CHECK-NEXT: | |-CXXMemberCallExpr {{.*}} 'std::suspend_always' +// CHECK-NEXT: | | `-MemberExpr {{.*}} '' .final_suspend {{.*}} +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: | |-MaterializeTemporaryExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | | `-CXXMemberCallExpr {{.*}} 'std::suspend_always' +// CHECK-NEXT: | | `-MemberExpr {{.*}} '' .final_suspend {{.*}} +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: | |-ExprWithCleanups {{.*}} 'bool' +// CHECK-NEXT: | | `-CXXMemberCallExpr {{.*}} 'bool' +// CHECK-NEXT: | | `-MemberExpr {{.*}} '' .await_ready {{.*}} +// CHECK-NEXT: | | `-OpaqueValueExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | | `-CXXMemberCallExpr {{.*}} 'std::suspend_always' +// CHECK-NEXT: | | `-MemberExpr {{.*}} '' .final_suspend {{.*}} +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: | |-ExprWithCleanups {{.*}} 'void' +// CHECK-NEXT: | | `-CXXMemberCallExpr {{.*}} 'void' +// CHECK-NEXT: | | |-MemberExpr {{.*}} '' .await_suspend {{.*}} +// CHECK-NEXT: | | | `-OpaqueValueExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | | | `-CXXMemberCallExpr {{.*}} 'std::suspend_always' +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .final_suspend {{.*}} +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: | | `-CXXConstructExpr {{.*}} 'coroutine_handle<>':'std::coroutine_handle' 'void (coroutine_handle &&) noexcept' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'coroutine_handle':'std::coroutine_handle' xvalue +// CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'coroutine_handle':'std::coroutine_handle' xvalue +// CHECK-NEXT: | | `-CallExpr {{.*}} 'coroutine_handle':'std::coroutine_handle' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'coroutine_handle (*)(void *) noexcept' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'coroutine_handle (void *) noexcept' lvalue CXXMethod {{.*}} 'from_address' 'coroutine_handle (void *) noexcept' +// CHECK-NEXT: | | `-CallExpr {{.*}} 'void *' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'void *(*)() noexcept' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'void *() noexcept' lvalue Function {{.*}} '__builtin_coro_frame' 'void *() noexcept' +// CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'void' +// CHECK-NEXT: | `-MemberExpr {{.*}} '' .await_resume {{.*}} +// CHECK-NEXT: | `-OpaqueValueExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'std::suspend_always' +// CHECK-NEXT: | `-MemberExpr {{.*}} '' .final_suspend {{.*}} +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: |-<<>> +// CHECK-NEXT: |-CoreturnStmt {{.*}} implicit +// CHECK-NEXT: | |-<<>> +// CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'std::suspend_always' +// CHECK-NEXT: | `-MemberExpr {{.*}} '' .return_void {{.*}} +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: |-CallExpr {{.*}} 'void *' +// CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'void *(*)(__size_t)' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'void *(__size_t)' lvalue Function {{.*}} 'operator new' 'void *(__size_t)' +// CHECK-NEXT: | `-CallExpr {{.*}} '__size_t':'unsigned long' +// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} '__size_t (*)() noexcept' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} '__size_t () noexcept' lvalue Function {{.*}} '__builtin_coro_size' '__size_t () noexcept' +// CHECK-NEXT: |-CallExpr {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'void (*)(void *, __size_t) noexcept' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'void (void *, __size_t) noexcept' lvalue Function {{.*}} 'operator delete' 'void (void *, __size_t) noexcept' +// CHECK-NEXT: | |-CallExpr {{.*}} 'void *' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'void *(*)(void *) noexcept' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'void *(void *) noexcept' lvalue Function {{.*}} '__builtin_coro_free' 'void *(void *) noexcept' +// CHECK-NEXT: | | `-CallExpr {{.*}} 'void *' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'void *(*)() noexcept' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'void *() noexcept' lvalue Function {{.*}} '__builtin_coro_frame' 'void *() noexcept' +// CHECK-NEXT: | `-CallExpr {{.*}} '__size_t':'unsigned long' +// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} '__size_t (*)() noexcept' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} '__size_t () noexcept' lvalue Function {{.*}} '__builtin_coro_size' '__size_t () noexcept' +// CHECK-NEXT: |-<<>> +// CHECK-NEXT: |-CXXMemberCallExpr {{.*}} 'Task' +// CHECK-NEXT: | `-MemberExpr {{.*}} '' .get_return_object {{.*}} +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: |-ReturnStmt {{.*}} +// CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'Task' +// CHECK-NEXT: | `-MemberExpr {{.*}} '' .get_return_object {{.*}} +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: `-<<>> + +Task test2() { + co_return; +} + +// CHECK: FunctionDecl {{.*}} test2 'Task ()' +// CHECK-NEXT: `-CoroutineBodyStmt {{.*}} +// CHECK-NEXT: |-CompoundStmt {{.*}} +// CHECK-NEXT: | `-CoreturnStmt {{.*}} +// CHECK-NEXT: | |-<<>> +// CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'std::suspend_always' +// CHECK-NEXT: | `-MemberExpr {{.*}} '' .return_void {{.*}} +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: |-DeclStmt {{.*}} +// CHECK-NEXT: | `-VarDecl {{.*}} implicit used __promise 'std::coroutine_traits::promise_type':'Task::promise_type' callinit +// CHECK-NEXT: | |-CXXConstructExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' 'void () noexcept' +// CHECK-NEXT: | `-typeDetails: TypedefType {{.*}} 'std::coroutine_traits::promise_type' sugar +// CHECK-NEXT: | |-TypeAlias {{.*}} 'promise_type' +// CHECK-NEXT: | `-typeDetails: ElaboratedType {{.*}} 'typename Task::promise_type' sugar +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'Task::promise_type' +// CHECK-NEXT: | `-CXXRecord {{.*}} 'promise_type' +// CHECK-NEXT: |-ExprWithCleanups {{.*}} 'void' +// CHECK-NEXT: | `-CoawaitExpr {{.*}} 'void' implicit +// CHECK-NEXT: | |-CXXMemberCallExpr {{.*}} 'std::suspend_always' +// CHECK-NEXT: | | `-MemberExpr {{.*}} '' .initial_suspend {{.*}} +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: | |-MaterializeTemporaryExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | | `-CXXMemberCallExpr {{.*}} 'std::suspend_always' +// CHECK-NEXT: | | `-MemberExpr {{.*}} '' .initial_suspend {{.*}} +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: | |-ExprWithCleanups {{.*}} 'bool' +// CHECK-NEXT: | | `-CXXMemberCallExpr {{.*}} 'bool' +// CHECK-NEXT: | | `-MemberExpr {{.*}} '' .await_ready {{.*}} +// CHECK-NEXT: | | `-OpaqueValueExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | | `-CXXMemberCallExpr {{.*}} 'std::suspend_always' +// CHECK-NEXT: | | `-MemberExpr {{.*}} '' .initial_suspend {{.*}} +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: | |-ExprWithCleanups {{.*}} 'void' +// CHECK-NEXT: | | `-CXXMemberCallExpr {{.*}} 'void' +// CHECK-NEXT: | | |-MemberExpr {{.*}} '' .await_suspend {{.*}} +// CHECK-NEXT: | | | `-OpaqueValueExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | | | `-CXXMemberCallExpr {{.*}} 'std::suspend_always' +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .initial_suspend {{.*}} +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: | | `-CXXConstructExpr {{.*}} 'coroutine_handle<>':'std::coroutine_handle' 'void (coroutine_handle &&) noexcept' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'coroutine_handle':'std::coroutine_handle' xvalue +// CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'coroutine_handle':'std::coroutine_handle' xvalue +// CHECK-NEXT: | | `-CallExpr {{.*}} 'coroutine_handle':'std::coroutine_handle' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'coroutine_handle (*)(void *) noexcept' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'coroutine_handle (void *) noexcept' lvalue CXXMethod {{.*}} 'from_address' 'coroutine_handle (void *) noexcept' +// CHECK-NEXT: | | `-CallExpr {{.*}} 'void *' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'void *(*)() noexcept' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'void *() noexcept' lvalue Function {{.*}} '__builtin_coro_frame' 'void *() noexcept' +// CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'void' +// CHECK-NEXT: | `-MemberExpr {{.*}} '' .await_resume {{.*}} +// CHECK-NEXT: | `-OpaqueValueExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'std::suspend_always' +// CHECK-NEXT: | `-MemberExpr {{.*}} '' .initial_suspend {{.*}} +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: |-ExprWithCleanups {{.*}} 'void' +// CHECK-NEXT: | `-CoawaitExpr {{.*}} 'void' implicit +// CHECK-NEXT: | |-CXXMemberCallExpr {{.*}} 'std::suspend_always' +// CHECK-NEXT: | | `-MemberExpr {{.*}} '' .final_suspend {{.*}} +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: | |-MaterializeTemporaryExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | | `-CXXMemberCallExpr {{.*}} 'std::suspend_always' +// CHECK-NEXT: | | `-MemberExpr {{.*}} '' .final_suspend {{.*}} +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: | |-ExprWithCleanups {{.*}} 'bool' +// CHECK-NEXT: | | `-CXXMemberCallExpr {{.*}} 'bool' +// CHECK-NEXT: | | `-MemberExpr {{.*}} '' .await_ready {{.*}} +// CHECK-NEXT: | | `-OpaqueValueExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | | `-CXXMemberCallExpr {{.*}} 'std::suspend_always' +// CHECK-NEXT: | | `-MemberExpr {{.*}} '' .final_suspend {{.*}} +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: | |-ExprWithCleanups {{.*}} 'void' +// CHECK-NEXT: | | `-CXXMemberCallExpr {{.*}} 'void' +// CHECK-NEXT: | | |-MemberExpr {{.*}} '' .await_suspend {{.*}} +// CHECK-NEXT: | | | `-OpaqueValueExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | | | `-CXXMemberCallExpr {{.*}} 'std::suspend_always' +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .final_suspend {{.*}} +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: | | `-CXXConstructExpr {{.*}} 'coroutine_handle<>':'std::coroutine_handle' 'void (coroutine_handle &&) noexcept' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'coroutine_handle':'std::coroutine_handle' xvalue +// CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'coroutine_handle':'std::coroutine_handle' xvalue +// CHECK-NEXT: | | `-CallExpr {{.*}} 'coroutine_handle':'std::coroutine_handle' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'coroutine_handle (*)(void *) noexcept' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'coroutine_handle (void *) noexcept' lvalue CXXMethod {{.*}} 'from_address' 'coroutine_handle (void *) noexcept' +// CHECK-NEXT: | | `-CallExpr {{.*}} 'void *' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'void *(*)() noexcept' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'void *() noexcept' lvalue Function {{.*}} '__builtin_coro_frame' 'void *() noexcept' +// CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'void' +// CHECK-NEXT: | `-MemberExpr {{.*}} '' .await_resume {{.*}} +// CHECK-NEXT: | `-OpaqueValueExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'std::suspend_always' lvalue +// CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'std::suspend_always' +// CHECK-NEXT: | `-MemberExpr {{.*}} '' .final_suspend {{.*}} +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: |-<<>> +// CHECK-NEXT: |-CoreturnStmt {{.*}} implicit +// CHECK-NEXT: | |-<<>> +// CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'std::suspend_always' +// CHECK-NEXT: | `-MemberExpr {{.*}} '' .return_void {{.*}} +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: |-CallExpr {{.*}} 'void *' +// CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'void *(*)(__size_t)' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'void *(__size_t)' lvalue Function {{.*}} 'operator new' 'void *(__size_t)' +// CHECK-NEXT: | `-CallExpr {{.*}} '__size_t':'unsigned long' +// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} '__size_t (*)() noexcept' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} '__size_t () noexcept' lvalue Function {{.*}} '__builtin_coro_size' '__size_t () noexcept' +// CHECK-NEXT: |-CallExpr {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'void (*)(void *, __size_t) noexcept' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'void (void *, __size_t) noexcept' lvalue Function {{.*}} 'operator delete' 'void (void *, __size_t) noexcept' +// CHECK-NEXT: | |-CallExpr {{.*}} 'void *' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'void *(*)(void *) noexcept' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'void *(void *) noexcept' lvalue Function {{.*}} '__builtin_coro_free' 'void *(void *) noexcept' +// CHECK-NEXT: | | `-CallExpr {{.*}} 'void *' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'void *(*)() noexcept' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'void *() noexcept' lvalue Function {{.*}} '__builtin_coro_frame' 'void *() noexcept' +// CHECK-NEXT: | `-CallExpr {{.*}} '__size_t':'unsigned long' +// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} '__size_t (*)() noexcept' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} '__size_t () noexcept' lvalue Function {{.*}} '__builtin_coro_size' '__size_t () noexcept' +// CHECK-NEXT: |-<<>> +// CHECK-NEXT: |-CXXMemberCallExpr {{.*}} 'Task' +// CHECK-NEXT: | `-MemberExpr {{.*}} '' .get_return_object {{.*}} +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: |-ReturnStmt {{.*}} +// CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'Task' +// CHECK-NEXT: | `-MemberExpr {{.*}} '' .get_return_object {{.*}} +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'std::coroutine_traits::promise_type':'Task::promise_type' lvalue Var {{.*}} '__promise' 'std::coroutine_traits::promise_type':'Task::promise_type' +// CHECK-NEXT: `-<<>> \ No newline at end of file diff --git a/clang/test/AST/ast-dump-ctad-alias.cpp b/clang/test/AST/ast-dump-ctad-alias.cpp index f39a4cee518ce..f6c3958f9a427 100644 --- a/clang/test/AST/ast-dump-ctad-alias.cpp +++ b/clang/test/AST/ast-dump-ctad-alias.cpp @@ -31,28 +31,28 @@ Out2::AInner t(1.0); // CHECK-NEXT: | |-BinaryOperator {{.*}} '' '&&' // CHECK-NEXT: | | |-UnresolvedLookupExpr {{.*}} '' lvalue (no ADL) = 'Concept' // CHECK-NEXT: | | | |-TemplateArgument type 'int' -// CHECK-NEXT: | | | | `-BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | `-TemplateArgument type 'Y':'type-parameter-1-0' -// CHECK-NEXT: | | | `-TemplateTypeParmType {{.*}} 'Y' dependent depth 1 index 0 +// CHECK-NEXT: | | | `-typeDetails: TemplateTypeParmType {{.*}} 'Y' dependent depth 1 index 0 // CHECK-NEXT: | | | `-TemplateTypeParm {{.*}} 'Y' // CHECK-NEXT: | | `-TypeTraitExpr {{.*}} 'bool' __is_deducible -// CHECK-NEXT: | | |-DeducedTemplateSpecializationType {{.*}} 'Out2::AInner' dependent +// CHECK-NEXT: | | |-typeDetails: DeducedTemplateSpecializationType {{.*}} 'Out2::AInner' dependent // CHECK-NEXT: | | | `-name: 'Out2::AInner' // CHECK-NEXT: | | | `-TypeAliasTemplateDecl {{.+}} AInner{{$}} -// CHECK-NEXT: | | `-ElaboratedType {{.*}} 'Inner' sugar dependent -// CHECK-NEXT: | | `-TemplateSpecializationType {{.*}} 'Inner' dependent +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'Inner' sugar dependent +// CHECK-NEXT: | | `-typeDetails: TemplateSpecializationType {{.*}} 'Inner' dependent // CHECK-NEXT: | | |-name: 'Inner':'Out::Inner' qualified // CHECK-NEXT: | | | `-ClassTemplateDecl {{.+}} Inner{{$}} // CHECK-NEXT: | | `-TemplateArgument type 'Y' -// CHECK-NEXT: | | `-SubstTemplateTypeParmType {{.*}} 'Y' +// CHECK-NEXT: | | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'Y' // CHECK-NEXT: | | |-FunctionTemplate {{.*}} '' -// CHECK-NEXT: | | `-TemplateTypeParmType {{.*}} 'Y' dependent depth 1 index 0 +// CHECK-NEXT: | | `-typeDetails: TemplateTypeParmType {{.*}} 'Y' dependent depth 1 index 0 // CHECK-NEXT: | | `-TemplateTypeParm {{.*}} 'Y' // CHECK-NEXT: | |-CXXDeductionGuideDecl {{.*}} 'auto (Y) -> Inner' // CHECK-NEXT: | | `-ParmVarDecl {{.*}} 'Y' -// CHECK-NEXT: | `-CXXDeductionGuideDecl {{.*}} used 'auto (double) -> Inner' implicit_instantiation +// CHECK: | `-CXXDeductionGuideDecl {{.*}} used 'auto (double) -> Inner' implicit_instantiation // CHECK-NEXT: | |-TemplateArgument type 'double' -// CHECK-NEXT: | | `-BuiltinType {{.*}} 'double' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'double' // CHECK-NEXT: | `-ParmVarDecl {{.*}} 'double' // GH92596 @@ -78,9 +78,9 @@ AFoo3 afoo3{0, 1}; // CHECK-NEXT: |-BinaryOperator {{.*}} '' '&&' // CHECK-NEXT: | |-UnresolvedLookupExpr {{.*}} '' lvalue (no ADL) = 'Concept' // CHECK-NEXT: | | |-TemplateArgument type 'int' -// CHECK-NEXT: | | | `-BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | `-TemplateArgument type 'V' -// CHECK-NEXT: | | `-TemplateTypeParmType {{.*}} 'V' dependent depth 0 index 1 +// CHECK-NEXT: | | `-typeDetails: TemplateTypeParmType {{.*}} 'V' dependent depth 0 index 1 template struct Foo { @@ -92,15 +92,15 @@ using AFoo = Foo; AFoo a(1, 2); // CHECK: |-CXXDeductionGuideDecl {{.*}} implicit 'auto (T2...) -> Foo' // CHECK-NEXT: | | `-ParmVarDecl {{.*}} 'T2...' pack -// CHECK-NEXT: | `-CXXDeductionGuideDecl {{.*}} implicit used 'auto (int, int) -> Foo' implicit_instantiation +// CHECK: | `-CXXDeductionGuideDecl {{.*}} implicit used 'auto (int, int) -> Foo' implicit_instantiation template using BFoo = Foo; BFoo b2(1.0, 2.0); // CHECK: |-CXXDeductionGuideDecl {{.*}} implicit 'auto (T, T) -> Foo' // CHECK-NEXT: | | |-ParmVarDecl {{.*}} 'T' -// CHECK-NEXT: | | `-ParmVarDecl {{.*}} 'T' -// CHECK-NEXT: | `-CXXDeductionGuideDecl {{.*}} implicit used 'auto (double, double) -> Foo' implicit_instantiation +// CHECK: | | `-ParmVarDecl {{.*}} 'T' +// CHECK: | `-CXXDeductionGuideDecl {{.*}} implicit used 'auto (double, double) -> Foo' implicit_instantiation namespace GH90209 { // Case 1: type template parameter @@ -187,18 +187,18 @@ void foo() { // CHECK-NEXT: | | |-ConceptSpecializationExpr {{.*}} 'bool' Concept {{.*}} 'invocable' // CHECK-NEXT: | | | |-ImplicitConceptSpecializationDecl {{.*}} // CHECK-NEXT: | | | | |-TemplateArgument type 'type-parameter-0-2' -// CHECK-NEXT: | | | | | `-TemplateTypeParmType {{.*}} 'type-parameter-0-2' dependent depth 0 index 2 +// CHECK-NEXT: | | | | | `-typeDetails: TemplateTypeParmType {{.*}} 'type-parameter-0-2' dependent depth 0 index 2 // CHECK-NEXT: | | | | `-TemplateArgument pack '>' // CHECK-NEXT: | | | | `-TemplateArgument type 'Packs' -// CHECK-NEXT: | | | | `-TemplateSpecializationType {{.*}} 'Packs' dependent +// CHECK-NEXT: | | | | `-typeDetails: TemplateSpecializationType {{.*}} 'Packs' dependent // CHECK-NEXT: | | | | |-name: 'GH124715::Packs' // CHECK-NEXT: | | | | | `-ClassTemplateDecl {{.*}} Packs // CHECK-NEXT: | | | | `-TemplateArgument pack '' // CHECK-NEXT: | | | | `-TemplateArgument type 'type-parameter-0-1...' -// CHECK-NEXT: | | | | `-PackExpansionType {{.*}} 'type-parameter-0-1...' dependent -// CHECK-NEXT: | | | | `-TemplateTypeParmType {{.*}} 'type-parameter-0-1' dependent contains_unexpanded_pack depth 0 index 1 pack +// CHECK-NEXT: | | | | `-typeDetails: PackExpansionType {{.*}} 'type-parameter-0-1...' dependent +// CHECK-NEXT: | | | | `-typeDetails: TemplateTypeParmType {{.*}} 'type-parameter-0-1' dependent contains_unexpanded_pack depth 0 index 1 pack // CHECK-NEXT: | | | |-TemplateArgument {{.*}} type 'U':'type-parameter-0-2' -// CHECK-NEXT: | | | | `-TemplateTypeParmType {{.*}} 'U' dependent depth 0 index 2 +// CHECK-NEXT: | | | | `-typeDetails: TemplateTypeParmType {{.*}} 'U' dependent depth 0 index 2 // CHECK-NEXT: | | | | `-TemplateTypeParm {{.*}} 'U' } // namespace GH124715 diff --git a/clang/test/AST/ast-dump-decl-json.c b/clang/test/AST/ast-dump-decl-json.c index ec2d75ba7195d..838f23e745876 100644 --- a/clang/test/AST/ast-dump-decl-json.c +++ b/clang/test/AST/ast-dump-decl-json.c @@ -92,1795 +92,2138 @@ void testParmVarDecl(int TestParmVarDecl); // NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "TypedefDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 12, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 1, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 22, -// CHECK-NEXT: "includedFrom": { -// CHECK-NEXT: "file": "{{.*}}" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 0, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 7, -// CHECK-NEXT: "includedFrom": { -// CHECK-NEXT: "file": "{{.*}}" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 12, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 22, -// CHECK-NEXT: "includedFrom": { -// CHECK-NEXT: "file": "{{.*}}" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "TestTypedefFromInclude", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BuiltinType", -// CHECK-NEXT: "type": { +// CHECK: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 12, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 1, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 22, +// CHECK-NEXT: "includedFrom": { +// CHECK-NEXT: "file": "{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 0, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 7, +// CHECK-NEXT: "includedFrom": { +// CHECK-NEXT: "file": "{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 12, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 22, +// CHECK-NEXT: "includedFrom": { +// CHECK-NEXT: "file": "{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "TestTypedefFromInclude", +// CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 172, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 5, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 12 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 168, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 172, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 12 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestLocation", -// CHECK-NEXT: "mangledName": "TestLocation", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 209, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 6, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 23 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 186, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 22 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 209, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 23 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestLocationFromInclude", -// CHECK-NEXT: "mangledName": "TestLocationFromInclude", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "int", -// CHECK-NEXT: "qualType": "TestTypedefFromInclude", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] // CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "RecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 242, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 8, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 235, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 264, -// CHECK-NEXT: "line": 10, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestIndent", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 261, -// CHECK-NEXT: "line": 9, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 172, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 5, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 12 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 257, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: "offset": 168, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 261, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "offset": 172, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 12 // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestLocation", +// CHECK-NEXT: "mangledName": "TestLocation", +// CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] // CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "RecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 275, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 12, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 12 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 268, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 328, -// CHECK-NEXT: "line": 17, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestChildren", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 296, -// CHECK-NEXT: "line": 13, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 209, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 6, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 23 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 292, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: "offset": 186, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 22 // CHECK-NEXT: }, // CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 296, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "offset": 209, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 23 // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "RecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 308, -// CHECK-NEXT: "line": 14, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestLocationFromInclude", +// CHECK-NEXT: "mangledName": "TestLocationFromInclude", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "int", +// CHECK-NEXT: "qualType": "TestTypedefFromInclude", +// CHECK-NEXT: "typeAliasDeclId": "{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "TestTypedefFromInclude" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "TypedefType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "TestTypedefFromInclude" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "name": "TestTypedefFromInclude" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "RecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 242, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 8, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 301, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: "offset": 235, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 // CHECK-NEXT: }, // CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 325, -// CHECK-NEXT: "line": 16, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "offset": 264, +// CHECK-NEXT: "line": 10, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "parentDeclContextId": "0x{{.*}}", -// CHECK-NEXT: "name": "y", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "inner": [ +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestIndent", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "inner": [ // CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 320, -// CHECK-NEXT: "line": 15, -// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 261, +// CHECK-NEXT: "line": 9, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 257, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 261, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "RecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 275, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 12, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 12 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 268, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 328, +// CHECK-NEXT: "line": 17, +// CHECK-NEXT: "col": 1, // CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 316, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 320, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestChildren", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 296, +// CHECK-NEXT: "line": 13, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 292, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 296, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "z", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "RecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 308, +// CHECK-NEXT: "line": 14, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 301, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 325, +// CHECK-NEXT: "line": 16, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "parentDeclContextId": "{{.*}}", +// CHECK-NEXT: "name": "y", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "line": 15, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 316, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "z", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] // CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] +// CHECK-NEXT: ] // CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "LabelDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 371, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 20, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 361, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 9 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 371, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "TestLabelDecl" +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "LabelDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 371, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 20, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 361, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 9 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 371, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "TestLabelDecl" // CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "TypedefDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 438, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 24, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 15 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 426, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 7 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 438, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 15 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestTypedefDecl", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BuiltinType", -// CHECK-NEXT: "type": { +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 438, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 24, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 15 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 426, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 7 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 438, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 15 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestTypedefDecl", +// CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] // CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "EnumDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 461, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 26, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 12 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 456, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 491, -// CHECK-NEXT: "line": 28, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestEnumDecl", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "EnumConstantDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 478, -// CHECK-NEXT: "line": 27, -// CHECK-NEXT: "col": 3, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "EnumDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 461, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 26, +// CHECK-NEXT: "col": 6, // CHECK-NEXT: "tokLen": 12 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 478, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 12 +// CHECK-NEXT: "offset": 456, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 // CHECK-NEXT: }, // CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 478, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 12 +// CHECK-NEXT: "offset": 491, +// CHECK-NEXT: "line": 28, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "testEnumDecl", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestEnumDecl", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "EnumConstantDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 478, +// CHECK-NEXT: "line": 27, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 12 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 478, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 12 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 478, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 12 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "testEnumDecl", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] // CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "RecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 502, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 30, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 495, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 558, -// CHECK-NEXT: "line": 34, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestEnumDeclAnon", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "EnumDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 523, -// CHECK-NEXT: "line": 31, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "RecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 502, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 30, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 523, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: "offset": 495, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 // CHECK-NEXT: }, // CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 553, -// CHECK-NEXT: "line": 33, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "offset": 558, +// CHECK-NEXT: "line": 34, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestEnumDeclAnon", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "inner": [ // CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "EnumConstantDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 534, -// CHECK-NEXT: "line": 32, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 534, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 534, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "EnumDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 523, +// CHECK-NEXT: "line": 31, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 523, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 553, +// CHECK-NEXT: "line": 33, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "EnumConstantDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 534, +// CHECK-NEXT: "line": 32, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 534, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 534, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "testEnumDeclAnon", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 555, +// CHECK-NEXT: "line": 33, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 523, +// CHECK-NEXT: "line": 31, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 555, +// CHECK-NEXT: "line": 33, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "e", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "enum TestEnumDeclAnon::(unnamed at C:\\Precision\\sei\\llvm-patch\\llvm-project\\clang\\test\\AST\\ast-dump-decl-json.c:31:3)", +// CHECK-NEXT: "qualType": "enum (unnamed enum at C:\\Precision\\sei\\llvm-patch\\llvm-project\\clang\\test\\AST\\ast-dump-decl-json.c:31:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "enum TestEnumDeclAnon::(unnamed at C:\\Precision\\sei\\llvm-patch\\llvm-project\\clang\\test\\AST\\ast-dump-decl-json.c:31:3)", +// CHECK-NEXT: "qualType": "enum (unnamed enum at C:\\Precision\\sei\\llvm-patch\\llvm-project\\clang\\test\\AST\\ast-dump-decl-json.c:31:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer", +// CHECK-NEXT: "enum" +// CHECK-NEXT: ] // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "testEnumDeclAnon", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } // CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 555, -// CHECK-NEXT: "line": 33, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "EnumDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 567, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 36, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 523, -// CHECK-NEXT: "line": 31, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: "offset": 562, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 // CHECK-NEXT: }, // CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 555, -// CHECK-NEXT: "line": 33, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "offset": 567, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 19 // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "e", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "enum TestEnumDeclAnon::(unnamed at {{.*}}:31:3)", -// CHECK-NEXT: "qualType": "enum (unnamed enum at {{.*}}:31:3)" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestEnumDeclForward" // CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "EnumDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 567, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 36, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 562, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 567, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestEnumDeclForward" +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "RecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 596, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 38, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 14 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 589, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 622, +// CHECK-NEXT: "line": 40, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestRecordDecl", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 619, +// CHECK-NEXT: "line": 39, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 615, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 619, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] // CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "RecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 596, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 38, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 14 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 589, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 622, -// CHECK-NEXT: "line": 40, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestRecordDecl", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 619, -// CHECK-NEXT: "line": 39, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "RecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 633, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 42, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 615, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: "offset": 626, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 // CHECK-NEXT: }, // CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 619, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "offset": 655, +// CHECK-NEXT: "line": 43, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestRecordDeclEmpty", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true // CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "RecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 633, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 42, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 626, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 655, -// CHECK-NEXT: "line": 43, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestRecordDeclEmpty", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "RecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 666, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 45, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 659, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 724, +// CHECK-NEXT: "line": 48, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestRecordDeclAnon1", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "RecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 690, +// CHECK-NEXT: "line": 46, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 690, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 701, +// CHECK-NEXT: "line": 47, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 703, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 690, +// CHECK-NEXT: "line": 46, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 703, +// CHECK-NEXT: "line": 47, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "testRecordDeclAnon1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "struct TestRecordDeclAnon1::(unnamed at C:\\Precision\\sei\\llvm-patch\\llvm-project\\clang\\test\\AST\\ast-dump-decl-json.c:46:3)", +// CHECK-NEXT: "qualType": "struct (unnamed struct at C:\\Precision\\sei\\llvm-patch\\llvm-project\\clang\\test\\AST\\ast-dump-decl-json.c:46:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "struct TestRecordDeclAnon1::(unnamed at C:\\Precision\\sei\\llvm-patch\\llvm-project\\clang\\test\\AST\\ast-dump-decl-json.c:46:3)", +// CHECK-NEXT: "qualType": "struct (unnamed struct at C:\\Precision\\sei\\llvm-patch\\llvm-project\\clang\\test\\AST\\ast-dump-decl-json.c:46:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] // CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "RecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 666, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 45, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 659, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 724, -// CHECK-NEXT: "line": 48, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "RecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 735, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 50, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 728, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 773, +// CHECK-NEXT: "line": 53, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestRecordDeclAnon2", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "RecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 759, +// CHECK-NEXT: "line": 51, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 759, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 770, +// CHECK-NEXT: "line": 52, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 759, +// CHECK-NEXT: "line": 51, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 759, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 759, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct TestRecordDeclAnon2::(anonymous at C:\\Precision\\sei\\llvm-patch\\llvm-project\\clang\\test\\AST\\ast-dump-decl-json.c:51:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct TestRecordDeclAnon2::(anonymous at C:\\Precision\\sei\\llvm-patch\\llvm-project\\clang\\test\\AST\\ast-dump-decl-json.c:51:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "RecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 784, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 55, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 21 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 777, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 784, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 21 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestRecordDeclForward", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: } +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "EnumConstantDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 838, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 58, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 20 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 838, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 20 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 838, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 20 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestEnumConstantDecl", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestRecordDeclAnon1", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "RecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 690, -// CHECK-NEXT: "line": 46, +// CHECK-NEXT: } +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "EnumConstantDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 862, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 59, // CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { +// CHECK-NEXT: "tokLen": 24 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 690, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: "offset": 862, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 24 // CHECK-NEXT: }, // CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 701, -// CHECK-NEXT: "line": 47, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "offset": 889, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 703, +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestEnumConstantDeclInit", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "ConstantExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 889, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 889, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 889, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 889, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "RecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 902, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 62, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 21 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 895, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 957, +// CHECK-NEXT: "line": 66, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestIndirectFieldDecl", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "RecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 928, +// CHECK-NEXT: "line": 63, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 928, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 954, +// CHECK-NEXT: "line": 65, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 945, +// CHECK-NEXT: "line": 64, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 941, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 945, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Field", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 928, +// CHECK-NEXT: "line": 63, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 928, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 928, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct TestIndirectFieldDecl::(anonymous at C:\\Precision\\sei\\llvm-patch\\llvm-project\\clang\\test\\AST\\ast-dump-decl-json.c:63:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct TestIndirectFieldDecl::(anonymous at C:\\Precision\\sei\\llvm-patch\\llvm-project\\clang\\test\\AST\\ast-dump-decl-json.c:63:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "IndirectFieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 945, +// CHECK-NEXT: "line": 64, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 945, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 945, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "Field" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1030, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 69, // CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 690, -// CHECK-NEXT: "line": 46, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: "offset": 1026, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 703, -// CHECK-NEXT: "line": 47, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: "offset": 1082, +// CHECK-NEXT: "line": 71, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestFunctionDecl", +// CHECK-NEXT: "mangledName": "TestFunctionDecl", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int (int, enum (unnamed enum at C:\\Precision\\sei\\llvm-patch\\llvm-project\\clang\\test\\AST\\ast-dump-decl-json.c:69:29))" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1051, +// CHECK-NEXT: "line": 69, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1047, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1051, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1065, +// CHECK-NEXT: "col": 40, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1054, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1065, +// CHECK-NEXT: "col": 40, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "y", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "enum (unnamed at C:\\Precision\\sei\\llvm-patch\\llvm-project\\clang\\test\\AST\\ast-dump-decl-json.c:69:29)", +// CHECK-NEXT: "qualType": "enum (unnamed enum at C:\\Precision\\sei\\llvm-patch\\llvm-project\\clang\\test\\AST\\ast-dump-decl-json.c:69:29)" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "enum (unnamed enum at C:\\Precision\\sei\\llvm-patch\\llvm-project\\clang\\test\\AST\\ast-dump-decl-json.c:69:29)" +// CHECK-NEXT: }, +// CHECK-NEXT: "ownedTagDecl": { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "EnumDecl", +// CHECK-NEXT: "name": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer", +// CHECK-NEXT: "enum" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "EnumType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "enum (unnamed at C:\\Precision\\sei\\llvm-patch\\llvm-project\\clang\\test\\AST\\ast-dump-decl-json.c:69:29)" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "EnumDecl", +// CHECK-NEXT: "name": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer", +// CHECK-NEXT: "enum" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1068, +// CHECK-NEXT: "col": 43, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1082, +// CHECK-NEXT: "line": 71, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "ReturnStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1072, +// CHECK-NEXT: "line": 70, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1079, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1079, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1079, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1079, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1079, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "testRecordDeclAnon1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "struct TestRecordDeclAnon1::(unnamed at {{.*}}:46:3)", -// CHECK-NEXT: "qualType": "struct (unnamed struct at {{.*}}:46:3)" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] +// CHECK-NEXT: ] // CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "RecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 735, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 50, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 728, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 773, -// CHECK-NEXT: "line": 53, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestRecordDeclAnon2", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "RecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 759, -// CHECK-NEXT: "line": 51, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1140, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 74, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 17 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 759, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: "offset": 1136, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 770, -// CHECK-NEXT: "line": 52, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "offset": 1189, +// CHECK-NEXT: "col": 54, +// CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 759, -// CHECK-NEXT: "line": 51, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 759, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestFunctionDecl2", +// CHECK-NEXT: "mangledName": "TestFunctionDecl2", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int (enum Enum)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1174, +// CHECK-NEXT: "col": 39, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1158, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1174, +// CHECK-NEXT: "col": 39, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "enum Enum" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "enum Enum" +// CHECK-NEXT: }, +// CHECK-NEXT: "ownedTagDecl": { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "EnumDecl", +// CHECK-NEXT: "name": "Enum" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer", +// CHECK-NEXT: "enum" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "EnumType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "enum Enum" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "EnumDecl", +// CHECK-NEXT: "name": "Enum" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer", +// CHECK-NEXT: "enum" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] // CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 759, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1177, +// CHECK-NEXT: "col": 42, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1189, +// CHECK-NEXT: "col": 54, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "ReturnStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1179, +// CHECK-NEXT: "col": 44, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1186, +// CHECK-NEXT: "col": 51, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1186, +// CHECK-NEXT: "col": 51, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1186, +// CHECK-NEXT: "col": 51, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralCast", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1186, +// CHECK-NEXT: "col": 51, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1186, +// CHECK-NEXT: "col": 51, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "enum Enum" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1186, +// CHECK-NEXT: "col": 51, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1186, +// CHECK-NEXT: "col": 51, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "enum Enum" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "enum Enum" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer", +// CHECK-NEXT: "enum" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "struct TestRecordDeclAnon2::(anonymous at {{.*}}:51:3)" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] +// CHECK-NEXT: ] // CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "RecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 784, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 55, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 21 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 777, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 784, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 21 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestRecordDeclForward", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "EnumConstantDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 838, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 58, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 20 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 838, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 20 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 838, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 20 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestEnumConstantDecl", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "EnumConstantDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 862, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 59, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 24 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 862, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 24 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 889, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestEnumConstantDeclInit", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ConstantExpr", -// CHECK-NEXT: "range": { +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1195, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 75, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 21 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 889, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "offset": 1191, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 889, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "offset": 1222, +// CHECK-NEXT: "col": 32, +// CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1", -// CHECK-NEXT: "inner": [ +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestFunctionDeclProto", +// CHECK-NEXT: "mangledName": "TestFunctionDeclProto", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int (int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ // CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 889, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 889, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1221, +// CHECK-NEXT: "col": 31, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1217, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1221, +// CHECK-NEXT: "col": 31, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] // CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] +// CHECK-NEXT: ] // CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "RecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 902, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 62, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 21 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 895, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 957, -// CHECK-NEXT: "line": 66, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestIndirectFieldDecl", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "RecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 928, -// CHECK-NEXT: "line": 63, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1230, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 76, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 23 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 928, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: "offset": 1225, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 // CHECK-NEXT: }, // CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 954, -// CHECK-NEXT: "line": 65, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 945, -// CHECK-NEXT: "line": 64, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 941, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 945, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Field", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } +// CHECK-NEXT: "offset": 1254, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 928, -// CHECK-NEXT: "line": 63, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestFunctionDeclNoProto", +// CHECK-NEXT: "mangledName": "TestFunctionDeclNoProto", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1268, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 77, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 18 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 928, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: "offset": 1257, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 // CHECK-NEXT: }, // CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 928, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: "offset": 1291, +// CHECK-NEXT: "col": 35, +// CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "struct TestIndirectFieldDecl::(anonymous at {{.*}}:63:3)" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IndirectFieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 945, -// CHECK-NEXT: "line": 64, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestFunctionDeclSC", +// CHECK-NEXT: "mangledName": "TestFunctionDeclSC", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int (void)" +// CHECK-NEXT: }, +// CHECK-NEXT: "storageClass": "extern" +// CHECK-NEXT: } +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1305, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 78, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 22 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 945, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: "offset": 1294, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 // CHECK-NEXT: }, // CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 945, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: "offset": 1332, +// CHECK-NEXT: "col": 39, +// CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "Field" -// CHECK-NEXT: } -// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestFunctionDeclInline", +// CHECK-NEXT: "mangledName": "TestFunctionDeclInline", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int (void)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true // CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1030, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 69, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1026, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1082, -// CHECK-NEXT: "line": 71, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestFunctionDecl", -// CHECK-NEXT: "mangledName": "TestFunctionDecl", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int (int, enum (unnamed enum at {{.*}}:69:29))" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1051, -// CHECK-NEXT: "line": 69, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1365, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 81, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1047, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: "offset": 1361, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1051, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "offset": 1365, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 13 // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestFieldDecl", +// CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1065, -// CHECK-NEXT: "col": 40, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1054, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" // CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1065, -// CHECK-NEXT: "col": 40, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "y", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "enum (unnamed at {{.*}}:69:29)", -// CHECK-NEXT: "qualType": "enum (unnamed enum at {{.*}}:69:29)" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1386, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 82, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 18 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1068, -// CHECK-NEXT: "col": 43, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "offset": 1382, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1082, -// CHECK-NEXT: "line": 71, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "offset": 1407, +// CHECK-NEXT: "col": 28, +// CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestFieldDeclWidth", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "isBitfield": true, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ // CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ReturnStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1072, -// CHECK-NEXT: "line": 70, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1079, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "ConstantExpr", +// CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1079, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "offset": 1407, +// CHECK-NEXT: "col": 28, +// CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: }, // CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1079, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "offset": 1407, +// CHECK-NEXT: "col": 28, +// CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1", +// CHECK-NEXT: "inner": [ // CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1079, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1407, +// CHECK-NEXT: "col": 28, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1407, +// CHECK-NEXT: "col": 28, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } // CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1079, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "x", // CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" // CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] +// CHECK-NEXT: ] // CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] +// CHECK-NEXT: ] // CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1140, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 74, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 17 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1136, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1189, -// CHECK-NEXT: "col": 54, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestFunctionDecl2", -// CHECK-NEXT: "mangledName": "TestFunctionDecl2", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int (enum Enum)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1174, -// CHECK-NEXT: "col": 39, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1418, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 85, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 11 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1158, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: "offset": 1414, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1174, -// CHECK-NEXT: "col": 39, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "offset": 1418, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 11 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestVarDecl", +// CHECK-NEXT: "mangledName": "TestVarDecl", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "enum Enum" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1442, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 86, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1177, -// CHECK-NEXT: "col": 42, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "offset": 1431, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 // CHECK-NEXT: }, // CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1189, -// CHECK-NEXT: "col": 54, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "offset": 1442, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 13 // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestVarDeclSC", +// CHECK-NEXT: "mangledName": "TestVarDeclSC", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "storageClass": "extern", +// CHECK-NEXT: "typeDetails": [ // CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ReturnStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1179, -// CHECK-NEXT: "col": 44, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1186, -// CHECK-NEXT: "col": 51, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1186, -// CHECK-NEXT: "col": 51, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1186, -// CHECK-NEXT: "col": 51, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralCast", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1186, -// CHECK-NEXT: "col": 51, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1186, -// CHECK-NEXT: "col": 51, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "enum Enum" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1186, -// CHECK-NEXT: "col": 51, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1186, -// CHECK-NEXT: "col": 51, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "enum Enum" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "enum Enum" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] // CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] +// CHECK-NEXT: ] // CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1195, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 75, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 21 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1191, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1222, -// CHECK-NEXT: "col": 32, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestFunctionDeclProto", -// CHECK-NEXT: "mangledName": "TestFunctionDeclProto", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int (int)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1221, -// CHECK-NEXT: "col": 31, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1470, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 87, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 17 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1217, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: "offset": 1457, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 8 // CHECK-NEXT: }, // CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1221, -// CHECK-NEXT: "col": 31, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "offset": 1470, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 17 // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestVarDeclThread", +// CHECK-NEXT: "mangledName": "TestVarDeclThread", +// CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1230, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 76, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 23 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1225, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1254, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestFunctionDeclNoProto", -// CHECK-NEXT: "mangledName": "TestFunctionDeclNoProto", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: } -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1268, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 77, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 18 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1257, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1291, -// CHECK-NEXT: "col": 35, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestFunctionDeclSC", -// CHECK-NEXT: "mangledName": "TestFunctionDeclSC", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int (void)" -// CHECK-NEXT: }, -// CHECK-NEXT: "storageClass": "extern" -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1305, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 78, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 22 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1294, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1332, -// CHECK-NEXT: "col": 39, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestFunctionDeclInline", -// CHECK-NEXT: "mangledName": "TestFunctionDeclInline", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int (void)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1365, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 81, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1361, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1365, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestFieldDecl", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "tls": "static", +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] // CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1386, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 82, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 18 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1382, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1407, -// CHECK-NEXT: "col": 28, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestFieldDeclWidth", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "isBitfield": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ConstantExpr", -// CHECK-NEXT: "range": { +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1493, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 88, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 15 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1407, -// CHECK-NEXT: "col": 28, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "offset": 1489, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1407, -// CHECK-NEXT: "col": 28, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "offset": 1511, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestVarDeclInit", +// CHECK-NEXT: "mangledName": "TestVarDeclInit", +// CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1", -// CHECK-NEXT: "inner": [ +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ // CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1407, -// CHECK-NEXT: "col": 28, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1407, -// CHECK-NEXT: "col": 28, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1511, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1511, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] // CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1418, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 85, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 11 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1414, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1418, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 11 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestVarDecl", -// CHECK-NEXT: "mangledName": "TestVarDecl", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1442, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 86, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1431, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1442, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestVarDeclSC", -// CHECK-NEXT: "mangledName": "TestVarDeclSC", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "storageClass": "extern" -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1470, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 87, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 17 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1457, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1470, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 17 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestVarDeclThread", -// CHECK-NEXT: "mangledName": "TestVarDeclThread", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "tls": "static" +// CHECK-NEXT: ] // CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1493, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 88, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 15 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1489, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1511, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestVarDeclInit", -// CHECK-NEXT: "mangledName": "TestVarDeclInit", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1540, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 90, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 15 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { // CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1511, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "offset": 1536, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 3 // CHECK-NEXT: }, // CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1511, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: "offset": 1540, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 15 // CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestParmVarDecl", +// CHECK-NEXT: "type": { // CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1540, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 90, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 15 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1536, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1540, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 15 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestParmVarDecl", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] // CHECK-NEXT: } diff --git a/clang/test/AST/ast-dump-decl-json.m b/clang/test/AST/ast-dump-decl-json.m index f7067ac0d3b77..619cfdb29ff1b 100644 --- a/clang/test/AST/ast-dump-decl-json.m +++ b/clang/test/AST/ast-dump-decl-json.m @@ -1,1965 +1,2395 @@ -// RUN: %clang_cc1 -triple x86_64-apple-darwin -Wno-unused -fblocks -ast-dump=json -ast-dump-filter Test %s | FileCheck %s - -@protocol P -@end - -@interface A -@end - -@interface TestObjCIvarDecl : A -@end - -@implementation TestObjCIvarDecl { - int varDefault; - @private int varPrivate; - @protected int varProtected; - @public int varPublic; - @package int varPackage; -} -@end - -@interface testObjCMethodDecl : A { -} -- (int) TestObjCMethodDecl: (int)i, ...; -@end - -@implementation testObjCMethodDecl -- (int) TestObjCMethodDecl: (int)i, ... { - return 0; -} -@end - -@protocol TestObjCProtocolDecl -- (void) foo; -@end - -@interface TestObjCClass : A

-- (void) foo; -@end - -@implementation TestObjCClass : A { - int i; -} -- (void) foo { -} -@end - -@interface TestObjCClass (TestObjCCategoryDecl)

-- (void) bar; -@end - -@interface TestGenericInterface : A

{ -} -@end - -@implementation TestObjCClass (TestObjCCategoryDecl) -- (void) bar { -} -@end - -@compatibility_alias TestObjCCompatibleAliasDecl A; - -@interface TestObjCProperty: A -@property(getter=getterFoo, setter=setterFoo:) int foo; -@property int bar; -@end - -@implementation TestObjCProperty { - int i; -} -@synthesize foo=i; -@synthesize bar; -@end - -void TestBlockDecl(int x) { - ^(int y, ...){ x; }; -} - -@interface B -+ (int) foo; -@end - -void f(void) { - __typeof__(B.foo) Test; -} - -// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "ObjCInterfaceDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 9, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 10, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestObjCIvarDecl", -// CHECK-NEXT: "mangledName": "_OBJC_CLASS_$_TestObjCIvarDecl", -// CHECK-NEXT: "super": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCInterfaceDecl", -// CHECK-NEXT: "name": "A" -// CHECK-NEXT: }, -// CHECK-NEXT: "implementation": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCImplementationDecl", -// CHECK-NEXT: "name": "TestObjCIvarDecl" -// CHECK-NEXT: } -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "ObjCImplementationDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 12, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 19, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestObjCIvarDecl", -// CHECK-NEXT: "super": { -// CHECK-NEXT: "id": "0x0" -// CHECK-NEXT: }, -// CHECK-NEXT: "interface": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCInterfaceDecl", -// CHECK-NEXT: "name": "TestObjCIvarDecl" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCIvarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 13, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "varDefault", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "access": "private" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCIvarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 14, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "varPrivate", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "access": "private" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCIvarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 15, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 12 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 12 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "varProtected", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "access": "protected" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCIvarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 16, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 9 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 9 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "varPublic", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "access": "public" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCIvarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 17, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "varPackage", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "access": "package" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "ObjCMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 23, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 40, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestObjCMethodDecl:", -// CHECK-NEXT: "mangledName": "-[testObjCMethodDecl TestObjCMethodDecl:]", -// CHECK-NEXT: "returnType": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "instance": true, -// CHECK-NEXT: "variadic": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "ObjCMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 27, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 29, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestObjCMethodDecl:", -// CHECK-NEXT: "mangledName": "-[testObjCMethodDecl TestObjCMethodDecl:]", -// CHECK-NEXT: "returnType": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "instance": true, -// CHECK-NEXT: "variadic": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitParamDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "self", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "testObjCMethodDecl *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitParamDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "_cmd", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "SEL *", -// CHECK-NEXT: "qualType": "SEL", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 27, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 41, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 29, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ReturnStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 28, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "ObjCProtocolDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 32, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 20 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 34, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestObjCProtocolDecl", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 33, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "foo", -// CHECK-NEXT: "mangledName": "-[TestObjCProtocolDecl foo]", -// CHECK-NEXT: "returnType": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "instance": true -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "ObjCInterfaceDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 36, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 38, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestObjCClass", -// CHECK-NEXT: "mangledName": "_OBJC_CLASS_$_TestObjCClass", -// CHECK-NEXT: "super": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCInterfaceDecl", -// CHECK-NEXT: "name": "A" -// CHECK-NEXT: }, -// CHECK-NEXT: "implementation": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCImplementationDecl", -// CHECK-NEXT: "name": "TestObjCClass" -// CHECK-NEXT: }, -// CHECK-NEXT: "protocols": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCProtocolDecl", -// CHECK-NEXT: "name": "P" -// CHECK-NEXT: } -// CHECK-NEXT: ], -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 37, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "foo", -// CHECK-NEXT: "mangledName": "-[TestObjCClass foo]", -// CHECK-NEXT: "returnType": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "instance": true -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "ObjCImplementationDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 40, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 45, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestObjCClass", -// CHECK-NEXT: "super": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCInterfaceDecl", -// CHECK-NEXT: "name": "A" -// CHECK-NEXT: }, -// CHECK-NEXT: "interface": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCInterfaceDecl", -// CHECK-NEXT: "name": "TestObjCClass" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCIvarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 41, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "access": "private" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 43, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 44, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "foo", -// CHECK-NEXT: "mangledName": "-[TestObjCClass foo]", -// CHECK-NEXT: "returnType": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "instance": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitParamDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "self", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "TestObjCClass *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitParamDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "_cmd", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "SEL *", -// CHECK-NEXT: "qualType": "SEL", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 43, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 44, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "ObjCCategoryDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 47, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 49, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestObjCCategoryDecl", -// CHECK-NEXT: "interface": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCInterfaceDecl", -// CHECK-NEXT: "name": "TestObjCClass" -// CHECK-NEXT: }, -// CHECK-NEXT: "implementation": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCCategoryImplDecl", -// CHECK-NEXT: "name": "TestObjCCategoryDecl" -// CHECK-NEXT: }, -// CHECK-NEXT: "protocols": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCProtocolDecl", -// CHECK-NEXT: "name": "P" -// CHECK-NEXT: } -// CHECK-NEXT: ], -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 48, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "bar", -// CHECK-NEXT: "mangledName": "-[TestObjCClass(TestObjCCategoryDecl) bar]", -// CHECK-NEXT: "returnType": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "instance": true -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "ObjCInterfaceDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 51, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 20 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 53, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestGenericInterface", -// CHECK-NEXT: "mangledName": "_OBJC_CLASS_$_TestGenericInterface", -// CHECK-NEXT: "super": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCInterfaceDecl", -// CHECK-NEXT: "name": "A" -// CHECK-NEXT: }, -// CHECK-NEXT: "implementation": { -// CHECK-NEXT: "id": "0x0" -// CHECK-NEXT: }, -// CHECK-NEXT: "protocols": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCProtocolDecl", -// CHECK-NEXT: "name": "P" -// CHECK-NEXT: } -// CHECK-NEXT: ], -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCTypeParamDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 51, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "T", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "ObjCCategoryImplDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 55, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 58, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestObjCCategoryDecl", -// CHECK-NEXT: "interface": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCInterfaceDecl", -// CHECK-NEXT: "name": "TestObjCClass" -// CHECK-NEXT: }, -// CHECK-NEXT: "categoryDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCCategoryDecl", -// CHECK-NEXT: "name": "TestObjCCategoryDecl" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 56, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 57, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "bar", -// CHECK-NEXT: "mangledName": "-[TestObjCClass(TestObjCCategoryDecl) bar]", -// CHECK-NEXT: "returnType": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "instance": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitParamDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "self", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "TestObjCClass *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitParamDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "_cmd", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "SEL *", -// CHECK-NEXT: "qualType": "SEL", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 56, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 57, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "ObjCCompatibleAliasDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 60, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestObjCCompatibleAliasDecl", -// CHECK-NEXT: "interface": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCInterfaceDecl", -// CHECK-NEXT: "name": "A" -// CHECK-NEXT: } -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "ObjCInterfaceDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 62, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 65, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestObjCProperty", -// CHECK-NEXT: "mangledName": "_OBJC_CLASS_$_TestObjCProperty", -// CHECK-NEXT: "super": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCInterfaceDecl", -// CHECK-NEXT: "name": "A" -// CHECK-NEXT: }, -// CHECK-NEXT: "implementation": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCImplementationDecl", -// CHECK-NEXT: "name": "TestObjCProperty" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCPropertyDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 63, -// CHECK-NEXT: "col": 52, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 52, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "foo", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "getter": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMethodDecl", -// CHECK-NEXT: "name": "getterFoo" -// CHECK-NEXT: }, -// CHECK-NEXT: "setter": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMethodDecl", -// CHECK-NEXT: "name": "setterFoo:" -// CHECK-NEXT: }, -// CHECK-NEXT: "assign": true, -// CHECK-NEXT: "readwrite": true, -// CHECK-NEXT: "atomic": true, -// CHECK-NEXT: "unsafe_unretained": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCPropertyDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 64, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "bar", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "assign": true, -// CHECK-NEXT: "readwrite": true, -// CHECK-NEXT: "atomic": true, -// CHECK-NEXT: "unsafe_unretained": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 63, -// CHECK-NEXT: "col": 52, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 52, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 52, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "getterFoo", -// CHECK-NEXT: "mangledName": "-[TestObjCProperty getterFoo]", -// CHECK-NEXT: "returnType": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "instance": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 52, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 52, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 52, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "setterFoo:", -// CHECK-NEXT: "mangledName": "-[TestObjCProperty setterFoo:]", -// CHECK-NEXT: "returnType": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "instance": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 52, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 52, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 52, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "foo", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 64, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "bar", -// CHECK-NEXT: "mangledName": "-[TestObjCProperty bar]", -// CHECK-NEXT: "returnType": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "instance": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "setBar:", -// CHECK-NEXT: "mangledName": "-[TestObjCProperty setBar:]", -// CHECK-NEXT: "returnType": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "instance": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "bar", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "ObjCImplementationDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 67, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 72, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestObjCProperty", -// CHECK-NEXT: "super": { -// CHECK-NEXT: "id": "0x0" -// CHECK-NEXT: }, -// CHECK-NEXT: "interface": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCInterfaceDecl", -// CHECK-NEXT: "name": "TestObjCProperty" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCIvarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 68, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "access": "private" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCPropertyImplDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 70, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "foo", -// CHECK-NEXT: "implKind": "synthesize", -// CHECK-NEXT: "propertyDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCPropertyDecl", -// CHECK-NEXT: "name": "foo" -// CHECK-NEXT: }, -// CHECK-NEXT: "ivarDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCIvarDecl", -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCIvarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 71, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "bar", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "synthesized": true, -// CHECK-NEXT: "access": "private" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCPropertyImplDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "bar", -// CHECK-NEXT: "implKind": "synthesize", -// CHECK-NEXT: "propertyDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCPropertyDecl", -// CHECK-NEXT: "name": "bar" -// CHECK-NEXT: }, -// CHECK-NEXT: "ivarDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCIvarDecl", -// CHECK-NEXT: "name": "bar", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 70, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "getterFoo", -// CHECK-NEXT: "mangledName": "-[TestObjCProperty getterFoo]", -// CHECK-NEXT: "returnType": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "instance": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "setterFoo:", -// CHECK-NEXT: "mangledName": "-[TestObjCProperty setterFoo:]", -// CHECK-NEXT: "returnType": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "instance": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 63, -// CHECK-NEXT: "col": 52, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 52, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 52, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "foo", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 71, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "bar", -// CHECK-NEXT: "mangledName": "-[TestObjCProperty bar]", -// CHECK-NEXT: "returnType": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "instance": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "setBar:", -// CHECK-NEXT: "mangledName": "-[TestObjCProperty setBar:]", -// CHECK-NEXT: "returnType": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "instance": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 64, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "bar", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 74, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 76, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestBlockDecl", -// CHECK-NEXT: "mangledName": "_TestBlockDecl", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (int)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 74, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 76, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ExprWithCleanups", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 75, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (^)(int, ...)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "cleanupsHaveSideEffects": true, -// CHECK-NEXT: "cleanups": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BlockDecl" -// CHECK-NEXT: } -// CHECK-NEXT: ], -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BlockExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (^)(int, ...)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BlockDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "variadic": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "y", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "kind": "Capture", -// CHECK-NEXT: "var": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 83, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "int", -// CHECK-NEXT: "qualType": "typeof (B.foo)" -// CHECK-NEXT: } -// CHECK-NEXT: } +// RUN: %clang_cc1 -triple x86_64-apple-darwin -Wno-unused -fblocks -ast-dump=json -ast-dump-filter Test %s | FileCheck %s + +@protocol P +@end + +@interface A +@end + +@interface TestObjCIvarDecl : A +@end + +@implementation TestObjCIvarDecl { + int varDefault; + @private int varPrivate; + @protected int varProtected; + @public int varPublic; + @package int varPackage; +} +@end + +@interface testObjCMethodDecl : A { +} +- (int) TestObjCMethodDecl: (int)i, ...; +@end + +@implementation testObjCMethodDecl +- (int) TestObjCMethodDecl: (int)i, ... { + return 0; +} +@end + +@protocol TestObjCProtocolDecl +- (void) foo; +@end + +@interface TestObjCClass : A

+- (void) foo; +@end + +@implementation TestObjCClass : A { + int i; +} +- (void) foo { +} +@end + +@interface TestObjCClass (TestObjCCategoryDecl)

+- (void) bar; +@end + +@interface TestGenericInterface : A

{ +} +@end + +@implementation TestObjCClass (TestObjCCategoryDecl) +- (void) bar { +} +@end + +@compatibility_alias TestObjCCompatibleAliasDecl A; + +@interface TestObjCProperty: A +@property(getter=getterFoo, setter=setterFoo:) int foo; +@property int bar; +@end + +@implementation TestObjCProperty { + int i; +} +@synthesize foo=i; +@synthesize bar; +@end + +void TestBlockDecl(int x) { + ^(int y, ...){ x; }; +} + +@interface B ++ (int) foo; +@end + +void f(void) { + __typeof__(B.foo) Test; +} + +// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 180, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 9, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 169, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 203, +// CHECK-NEXT: "line": 10, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestObjCIvarDecl", +// CHECK-NEXT: "mangledName": "_OBJC_CLASS_$_TestObjCIvarDecl", +// CHECK-NEXT: "super": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "name": "A" +// CHECK-NEXT: }, +// CHECK-NEXT: "implementation": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCImplementationDecl", +// CHECK-NEXT: "name": "TestObjCIvarDecl" +// CHECK-NEXT: } +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "ObjCImplementationDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 226, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 12, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 210, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 382, +// CHECK-NEXT: "line": 19, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestObjCIvarDecl", +// CHECK-NEXT: "super": { +// CHECK-NEXT: "id": "0x0" +// CHECK-NEXT: }, +// CHECK-NEXT: "interface": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "name": "TestObjCIvarDecl" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCIvarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 252, +// CHECK-NEXT: "line": 13, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 248, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 252, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "varDefault", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "access": "private" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCIvarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 280, +// CHECK-NEXT: "line": 14, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 276, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 280, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "varPrivate", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "access": "private" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCIvarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 310, +// CHECK-NEXT: "line": 15, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 12 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 306, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 310, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 12 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "varProtected", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "access": "protected" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCIvarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 339, +// CHECK-NEXT: "line": 16, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 9 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 335, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 339, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 9 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "varPublic", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "access": "public" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCIvarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 366, +// CHECK-NEXT: "line": 17, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 362, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 366, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "varPackage", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "access": "package" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "ObjCMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 430, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 23, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 430, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 469, +// CHECK-NEXT: "col": 40, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestObjCMethodDecl:", +// CHECK-NEXT: "mangledName": "-[testObjCMethodDecl TestObjCMethodDecl:]", +// CHECK-NEXT: "returnType": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "instance": true, +// CHECK-NEXT: "variadic": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 463, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 459, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 463, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "ObjCMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 516, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 27, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 516, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 572, +// CHECK-NEXT: "line": 29, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestObjCMethodDecl:", +// CHECK-NEXT: "mangledName": "-[testObjCMethodDecl TestObjCMethodDecl:]", +// CHECK-NEXT: "returnType": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "instance": true, +// CHECK-NEXT: "variadic": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitParamDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "self", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "testObjCMethodDecl *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCObjectPointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "testObjCMethodDecl *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "testObjCMethodDecl" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "name": "testObjCMethodDecl" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitParamDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "_cmd", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "SEL *", +// CHECK-NEXT: "qualType": "SEL", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "SEL" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "name": "SEL" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "SEL *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "SEL" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 549, +// CHECK-NEXT: "line": 27, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 545, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 549, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 556, +// CHECK-NEXT: "col": 41, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 572, +// CHECK-NEXT: "line": 29, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ReturnStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 561, +// CHECK-NEXT: "line": 28, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 568, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 568, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 568, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "ObjCProtocolDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 593, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 32, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 20 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 583, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 631, +// CHECK-NEXT: "line": 34, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestObjCProtocolDecl", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 615, +// CHECK-NEXT: "line": 33, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 615, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 627, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "foo", +// CHECK-NEXT: "mangledName": "-[TestObjCProtocolDecl foo]", +// CHECK-NEXT: "returnType": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "instance": true +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 649, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 36, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 638, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 688, +// CHECK-NEXT: "line": 38, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestObjCClass", +// CHECK-NEXT: "mangledName": "_OBJC_CLASS_$_TestObjCClass", +// CHECK-NEXT: "super": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "name": "A" +// CHECK-NEXT: }, +// CHECK-NEXT: "implementation": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCImplementationDecl", +// CHECK-NEXT: "name": "TestObjCClass" +// CHECK-NEXT: }, +// CHECK-NEXT: "protocols": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCProtocolDecl", +// CHECK-NEXT: "name": "P" +// CHECK-NEXT: } +// CHECK-NEXT: ], +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 672, +// CHECK-NEXT: "line": 37, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 672, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 684, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "foo", +// CHECK-NEXT: "mangledName": "-[TestObjCClass foo]", +// CHECK-NEXT: "returnType": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "instance": true +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "ObjCImplementationDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 711, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 40, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 695, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 764, +// CHECK-NEXT: "line": 45, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestObjCClass", +// CHECK-NEXT: "super": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "name": "A" +// CHECK-NEXT: }, +// CHECK-NEXT: "interface": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "name": "TestObjCClass" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCIvarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 738, +// CHECK-NEXT: "line": 41, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 734, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 738, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "access": "private" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 745, +// CHECK-NEXT: "line": 43, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 745, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 761, +// CHECK-NEXT: "line": 44, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "foo", +// CHECK-NEXT: "mangledName": "-[TestObjCClass foo]", +// CHECK-NEXT: "returnType": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "instance": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitParamDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "self", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "TestObjCClass *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCObjectPointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "TestObjCClass *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "TestObjCClass" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "name": "TestObjCClass" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitParamDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "_cmd", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "SEL *", +// CHECK-NEXT: "qualType": "SEL", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "SEL" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "name": "SEL" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "SEL *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "SEL" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 758, +// CHECK-NEXT: "line": 43, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 761, +// CHECK-NEXT: "line": 44, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "ObjCCategoryDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 783, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 47, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 772, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 841, +// CHECK-NEXT: "line": 49, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestObjCCategoryDecl", +// CHECK-NEXT: "interface": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "name": "TestObjCClass" +// CHECK-NEXT: }, +// CHECK-NEXT: "implementation": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCCategoryImplDecl", +// CHECK-NEXT: "name": "TestObjCCategoryDecl" +// CHECK-NEXT: }, +// CHECK-NEXT: "protocols": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCProtocolDecl", +// CHECK-NEXT: "name": "P" +// CHECK-NEXT: } +// CHECK-NEXT: ], +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 825, +// CHECK-NEXT: "line": 48, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 825, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 837, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "bar", +// CHECK-NEXT: "mangledName": "-[TestObjCClass(TestObjCCategoryDecl) bar]", +// CHECK-NEXT: "returnType": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "instance": true +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 859, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 51, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 20 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 848, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 897, +// CHECK-NEXT: "line": 53, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestGenericInterface", +// CHECK-NEXT: "mangledName": "_OBJC_CLASS_$_TestGenericInterface", +// CHECK-NEXT: "super": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "name": "A" +// CHECK-NEXT: }, +// CHECK-NEXT: "implementation": { +// CHECK-NEXT: "id": "0x0" +// CHECK-NEXT: }, +// CHECK-NEXT: "protocols": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCProtocolDecl", +// CHECK-NEXT: "name": "P" +// CHECK-NEXT: } +// CHECK-NEXT: ], +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCTypeParamDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 880, +// CHECK-NEXT: "line": 51, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 880, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 880, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "T", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "ObjCCategoryImplDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 920, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 55, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 904, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 977, +// CHECK-NEXT: "line": 58, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestObjCCategoryDecl", +// CHECK-NEXT: "interface": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "name": "TestObjCClass" +// CHECK-NEXT: }, +// CHECK-NEXT: "categoryDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCCategoryDecl", +// CHECK-NEXT: "name": "TestObjCCategoryDecl" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 958, +// CHECK-NEXT: "line": 56, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 958, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 974, +// CHECK-NEXT: "line": 57, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "bar", +// CHECK-NEXT: "mangledName": "-[TestObjCClass(TestObjCCategoryDecl) bar]", +// CHECK-NEXT: "returnType": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "instance": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitParamDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "self", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "TestObjCClass *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCObjectPointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "TestObjCClass *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "TestObjCClass" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "name": "TestObjCClass" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitParamDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "_cmd", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "SEL *", +// CHECK-NEXT: "qualType": "SEL", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "SEL" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "name": "SEL" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "SEL *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "SEL" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 971, +// CHECK-NEXT: "line": 56, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 974, +// CHECK-NEXT: "line": 57, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "ObjCCompatibleAliasDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 985, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 60, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 985, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 985, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestObjCCompatibleAliasDecl", +// CHECK-NEXT: "interface": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "name": "A" +// CHECK-NEXT: } +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1051, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 62, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1040, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1150, +// CHECK-NEXT: "line": 65, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestObjCProperty", +// CHECK-NEXT: "mangledName": "_OBJC_CLASS_$_TestObjCProperty", +// CHECK-NEXT: "super": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "name": "A" +// CHECK-NEXT: }, +// CHECK-NEXT: "implementation": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCImplementationDecl", +// CHECK-NEXT: "name": "TestObjCProperty" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCPropertyDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1123, +// CHECK-NEXT: "line": 63, +// CHECK-NEXT: "col": 52, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1072, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1123, +// CHECK-NEXT: "col": 52, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "foo", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "getter": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMethodDecl", +// CHECK-NEXT: "name": "getterFoo" +// CHECK-NEXT: }, +// CHECK-NEXT: "setter": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMethodDecl", +// CHECK-NEXT: "name": "setterFoo:" +// CHECK-NEXT: }, +// CHECK-NEXT: "assign": true, +// CHECK-NEXT: "readwrite": true, +// CHECK-NEXT: "atomic": true, +// CHECK-NEXT: "unsafe_unretained": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCPropertyDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1143, +// CHECK-NEXT: "line": 64, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1129, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1143, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "bar", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "assign": true, +// CHECK-NEXT: "readwrite": true, +// CHECK-NEXT: "atomic": true, +// CHECK-NEXT: "unsafe_unretained": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1123, +// CHECK-NEXT: "line": 63, +// CHECK-NEXT: "col": 52, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1123, +// CHECK-NEXT: "col": 52, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1123, +// CHECK-NEXT: "col": 52, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "getterFoo", +// CHECK-NEXT: "mangledName": "-[TestObjCProperty getterFoo]", +// CHECK-NEXT: "returnType": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "instance": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1123, +// CHECK-NEXT: "col": 52, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1123, +// CHECK-NEXT: "col": 52, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1123, +// CHECK-NEXT: "col": 52, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "setterFoo:", +// CHECK-NEXT: "mangledName": "-[TestObjCProperty setterFoo:]", +// CHECK-NEXT: "returnType": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "instance": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1123, +// CHECK-NEXT: "col": 52, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1123, +// CHECK-NEXT: "col": 52, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1123, +// CHECK-NEXT: "col": 52, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "foo", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1143, +// CHECK-NEXT: "line": 64, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1143, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1143, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "bar", +// CHECK-NEXT: "mangledName": "-[TestObjCProperty bar]", +// CHECK-NEXT: "returnType": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "instance": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1143, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1143, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1143, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "setBar:", +// CHECK-NEXT: "mangledName": "-[TestObjCProperty setBar:]", +// CHECK-NEXT: "returnType": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "instance": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1143, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1143, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1143, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "bar", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "ObjCImplementationDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1173, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 67, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1157, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1244, +// CHECK-NEXT: "line": 72, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestObjCProperty", +// CHECK-NEXT: "super": { +// CHECK-NEXT: "id": "0x0" +// CHECK-NEXT: }, +// CHECK-NEXT: "interface": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "name": "TestObjCProperty" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCIvarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1199, +// CHECK-NEXT: "line": 68, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1195, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1199, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "access": "private" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCPropertyImplDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1218, +// CHECK-NEXT: "line": 70, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1206, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1222, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "foo", +// CHECK-NEXT: "implKind": "synthesize", +// CHECK-NEXT: "propertyDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCPropertyDecl", +// CHECK-NEXT: "name": "foo" +// CHECK-NEXT: }, +// CHECK-NEXT: "ivarDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCIvarDecl", +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCIvarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1238, +// CHECK-NEXT: "line": 71, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1238, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1238, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "bar", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "synthesized": true, +// CHECK-NEXT: "access": "private" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCPropertyImplDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1238, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1226, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1238, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "bar", +// CHECK-NEXT: "implKind": "synthesize", +// CHECK-NEXT: "propertyDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCPropertyDecl", +// CHECK-NEXT: "name": "bar" +// CHECK-NEXT: }, +// CHECK-NEXT: "ivarDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCIvarDecl", +// CHECK-NEXT: "name": "bar", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1206, +// CHECK-NEXT: "line": 70, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1206, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1218, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "getterFoo", +// CHECK-NEXT: "mangledName": "-[TestObjCProperty getterFoo]", +// CHECK-NEXT: "returnType": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "instance": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1206, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1206, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1218, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "setterFoo:", +// CHECK-NEXT: "mangledName": "-[TestObjCProperty setterFoo:]", +// CHECK-NEXT: "returnType": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "instance": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1123, +// CHECK-NEXT: "line": 63, +// CHECK-NEXT: "col": 52, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1123, +// CHECK-NEXT: "col": 52, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1123, +// CHECK-NEXT: "col": 52, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "foo", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1226, +// CHECK-NEXT: "line": 71, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1226, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1238, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "bar", +// CHECK-NEXT: "mangledName": "-[TestObjCProperty bar]", +// CHECK-NEXT: "returnType": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "instance": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1226, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1226, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1238, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "setBar:", +// CHECK-NEXT: "mangledName": "-[TestObjCProperty setBar:]", +// CHECK-NEXT: "returnType": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "instance": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1143, +// CHECK-NEXT: "line": 64, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1143, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1143, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "bar", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1257, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 74, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1252, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1305, +// CHECK-NEXT: "line": 76, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestBlockDecl", +// CHECK-NEXT: "mangledName": "_TestBlockDecl", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1275, +// CHECK-NEXT: "line": 74, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1271, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1275, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1278, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1305, +// CHECK-NEXT: "line": 76, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ExprWithCleanups", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1283, +// CHECK-NEXT: "line": 75, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1301, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (^)(int, ...)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "cleanupsHaveSideEffects": true, +// CHECK-NEXT: "cleanups": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BlockDecl" +// CHECK-NEXT: } +// CHECK-NEXT: ], +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BlockExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1283, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1301, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (^)(int, ...)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BlockDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1283, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1283, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1301, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "variadic": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1289, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1285, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1289, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "y", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "kind": "Capture", +// CHECK-NEXT: "var": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1296, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1301, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1298, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1298, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1298, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1298, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "const", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1382, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 83, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1364, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1382, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "int", +// CHECK-NEXT: "qualType": "typeof (B.foo)" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypeOfExprType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "typeof (B.foo)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PseudoObjectExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1374, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1380, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParenExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1374, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1380, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCPropertyRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1375, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1377, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "propertyKind": "implicit", +// CHECK-NEXT: "getter": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMethodDecl", +// CHECK-NEXT: "name": "foo" +// CHECK-NEXT: }, +// CHECK-NEXT: "isMessagingGetter": true +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMessageExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1377, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1377, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "selector": "foo", +// CHECK-NEXT: "receiverKind": "class", +// CHECK-NEXT: "classType": { +// CHECK-NEXT: "qualType": "B" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } diff --git a/clang/test/AST/ast-dump-decl-stmts.cpp b/clang/test/AST/ast-dump-decl-stmts.cpp index 613a3f9ee2bbc..76dc9736b3c4b 100644 --- a/clang/test/AST/ast-dump-decl-stmts.cpp +++ b/clang/test/AST/ast-dump-decl-stmts.cpp @@ -12,8 +12,8 @@ void test_func() { int a, b, c; // CHECK: DeclStmt 0x{{[^ ]*}} // CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:7 a 'int' - // CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:10 b 'int' - // CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:13 c 'int' + // CHECK: VarDecl 0x{{[^ ]*}} col:10 b 'int' + // CHECK: VarDecl 0x{{[^ ]*}} col:13 c 'int' void d(), e(int); // CHECK: DeclStmt 0x{{[^ ]*}} // CHECK-NEXT: FunctionDecl 0x{{[^ ]*}} parent 0x{{[^ ]*}} col:8 d 'void ()' @@ -27,8 +27,8 @@ void test_func() { // FIXME: These currently do not show up as a DeclStmt. int a, b, c; // CHECK: VarDecl 0x{{[^ ]*}} col:5 a 'int' -// CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:8 b 'int' -// CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:11 c 'int' +// CHECK: VarDecl 0x{{[^ ]*}} col:8 b 'int' +// CHECK: VarDecl 0x{{[^ ]*}} col:11 c 'int' void d(), e(int); // CHECK: FunctionDecl 0x{{[^ ]*}} prev 0x{{[^ ]*}} col:6 d 'void ()' // CHECK-NEXT: FunctionDecl 0x{{[^ ]*}} prev 0x{{[^ ]*}} col:11 e 'void (int)' diff --git a/clang/test/AST/ast-dump-decl.c b/clang/test/AST/ast-dump-decl.c index 683df50f7e91c..e7ac6d10aad5d 100644 --- a/clang/test/AST/ast-dump-decl.c +++ b/clang/test/AST/ast-dump-decl.c @@ -130,14 +130,14 @@ int TestFunctionDecl(int x, enum { e } y) { } // CHECK: FunctionDecl{{.*}} TestFunctionDecl 'int (int, enum {{.*}})' // CHECK-NEXT: ParmVarDecl{{.*}} x -// CHECK-NEXT: ParmVarDecl{{.*}} y -// CHECK-NEXT: CompoundStmt +// CHECK: ParmVarDecl{{.*}} y +// CHECK: CompoundStmt // FIXME: It would be nice to 'Enum' and 'e'. int TestFunctionDecl2(enum Enum { e } x) { return x; } // CHECK: FunctionDecl{{.*}} TestFunctionDecl2 'int (enum {{.*}})' // CHECK-NEXT: ParmVarDecl{{.*}} x -// CHECK-NEXT: CompoundStmt +// CHECK: CompoundStmt int TestFunctionDeclProto(int x); diff --git a/clang/test/AST/ast-dump-decl.cpp b/clang/test/AST/ast-dump-decl.cpp index 08d8fba795daa..1871956d0d92c 100644 --- a/clang/test/AST/ast-dump-decl.cpp +++ b/clang/test/AST/ast-dump-decl.cpp @@ -23,7 +23,7 @@ class testFieldDecl { int TestFieldDeclInit = 0; }; // CHECK: FieldDecl{{.*}} TestFieldDeclInit 'int' -// CHECK-NEXT: IntegerLiteral +// CHECK: IntegerLiteral namespace testVarDeclNRVO { class A { }; @@ -32,29 +32,35 @@ namespace testVarDeclNRVO { return TestVarDeclNRVO; } } -// CHECK: FunctionDecl{{.*}} TestFuncNRVO 'A ()' -// CHECK-NEXT: `-CompoundStmt -// CHECK-NEXT: |-DeclStmt -// CHECK-NEXT: | `-VarDecl{{.*}} TestVarDeclNRVO 'A':'testVarDeclNRVO::A' nrvo callinit -// CHECK-NEXT: | `-CXXConstructExpr -// CHECK-NEXT: `-ReturnStmt{{.*}} nrvo_candidate(Var {{.*}} 'TestVarDeclNRVO' 'A':'testVarDeclNRVO::A') +// CHECK: FunctionDecl 0x{{.+}} TestFuncNRVO 'A ()' +// CHECK-NEXT: `-CompoundStmt 0x{{.+}} +// CHECK-NEXT: |-DeclStmt 0x{{.+}} +// CHECK-NEXT: | `-VarDecl 0x{{.+}} used TestVarDeclNRVO 'A':'testVarDeclNRVO::A' nrvo callinit +// CHECK-NEXT: | |-CXXConstructExpr 0x{{.+}} 'A':'testVarDeclNRVO::A' 'void () noexcept' +// CHECK-NEXT: | `-typeDetails: ElaboratedType 0x{{.+}} 'A' sugar +// CHECK-NEXT: | `-typeDetails: RecordType 0x{{.+}} 'testVarDeclNRVO::A' +// CHECK-NEXT: | `-CXXRecord 0x{{.+}} 'A' +// CHECK-NEXT: `-ReturnStmt 0x{{.+}} nrvo_candidate(Var 0x{{.+}} 'TestVarDeclNRVO' 'A':'testVarDeclNRVO::A') +// CHECK-NEXT: `-CXXConstructExpr 0x{{.+}} 'A':'testVarDeclNRVO::A' 'void (A &&) noexcept' +// CHECK-NEXT: `-ImplicitCastExpr 0x{{.+}} 'A':'testVarDeclNRVO::A' xvalue +// CHECK-NEXT: `-DeclRefExpr 0x{{.+}} 'A':'testVarDeclNRVO::A' lvalue Var 0x{{.+}} 'TestVarDeclNRVO' 'A':'testVarDeclNRVO::A' void testParmVarDeclInit(int TestParmVarDeclInit = 0); // CHECK: ParmVarDecl{{.*}} TestParmVarDeclInit 'int' -// CHECK-NEXT: IntegerLiteral{{.*}} +// CHECK: IntegerLiteral{{.*}} namespace TestNamespaceDecl { int i; } // CHECK: NamespaceDecl{{.*}} TestNamespaceDecl -// CHECK-NEXT: VarDecl +// CHECK: VarDecl namespace TestNamespaceDecl { int j; } // CHECK: NamespaceDecl{{.*}} TestNamespaceDecl -// CHECK-NEXT: original Namespace -// CHECK-NEXT: VarDecl +// CHECK: original Namespace +// CHECK: VarDecl inline namespace TestNamespaceDeclInline { } @@ -85,7 +91,7 @@ namespace TestUsingDirectiveDecl { using namespace testUsingDirectiveDecl::A; } // CHECK: NamespaceDecl{{.*}} TestUsingDirectiveDecl -// CHECK-NEXT: UsingDirectiveDecl{{.*}} Namespace{{.*}} 'A' +// CHECK: UsingDirectiveDecl{{.*}} Namespace{{.*}} 'A' namespace testNamespaceAlias { namespace A { @@ -93,7 +99,7 @@ namespace testNamespaceAlias { } namespace TestNamespaceAlias = testNamespaceAlias::A; // CHECK: NamespaceAliasDecl{{.*}} TestNamespaceAlias -// CHECK-NEXT: Namespace{{.*}} 'A' +// CHECK: Namespace{{.*}} 'A' using TestTypeAliasDecl = int; // CHECK: TypeAliasDecl{{.*}} TestTypeAliasDecl 'int' @@ -103,19 +109,19 @@ namespace testTypeAliasTemplateDecl { template using TestTypeAliasTemplateDecl = A; } // CHECK: TypeAliasTemplateDecl{{.*}} TestTypeAliasTemplateDecl -// CHECK-NEXT: TemplateTypeParmDecl -// CHECK-NEXT: TypeAliasDecl{{.*}} TestTypeAliasTemplateDecl 'A' +// CHECK: TemplateTypeParmDecl +// CHECK: TypeAliasDecl{{.*}} TestTypeAliasTemplateDecl 'A' namespace testCXXRecordDecl { class TestEmpty {}; // CHECK: CXXRecordDecl{{.*}} class TestEmpty -// CHECK-NEXT: DefinitionData pass_in_registers empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init -// CHECK-NEXT: DefaultConstructor exists trivial constexpr -// CHECK-NEXT: CopyConstructor simple trivial has_const_param -// CHECK-NEXT: MoveConstructor exists simple trivial -// CHECK-NEXT: CopyAssignment simple trivial has_const_param -// CHECK-NEXT: MoveAssignment exists simple trivial -// CHECK-NEXT: Destructor simple irrelevant trivial +// CHECK: DefinitionData pass_in_registers empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init +// CHECK: DefaultConstructor exists trivial constexpr +// CHECK: CopyConstructor simple trivial has_const_param +// CHECK: MoveConstructor exists simple trivial +// CHECK: CopyAssignment simple trivial has_const_param +// CHECK: MoveAssignment exists simple trivial +// CHECK: Destructor simple irrelevant trivial class A { }; class B { }; @@ -124,24 +130,24 @@ namespace testCXXRecordDecl { }; } // CHECK: CXXRecordDecl{{.*}} class TestCXXRecordDecl -// CHECK-NEXT: DefinitionData{{$}} -// CHECK-NEXT: DefaultConstructor exists non_trivial -// CHECK-NEXT: CopyConstructor simple non_trivial has_const_param -// CHECK-NEXT: MoveConstructor exists simple non_trivial -// CHECK-NEXT: CopyAssignment simple non_trivial has_const_param -// CHECK-NEXT: MoveAssignment exists simple non_trivial -// CHECK-NEXT: Destructor simple irrelevant trivial -// CHECK-NEXT: virtual private 'A':'testCXXRecordDecl::A' -// CHECK-NEXT: public 'B':'testCXXRecordDecl::B' -// CHECK-NEXT: CXXRecordDecl{{.*}} class TestCXXRecordDecl -// CHECK-NEXT: FieldDecl +// CHECK: DefinitionData{{$}} +// CHECK: DefaultConstructor exists non_trivial +// CHECK: CopyConstructor simple non_trivial has_const_param +// CHECK: MoveConstructor exists simple non_trivial +// CHECK: CopyAssignment simple non_trivial has_const_param +// CHECK: MoveAssignment exists simple non_trivial +// CHECK: Destructor simple irrelevant trivial +// CHECK: virtual private 'A':'testCXXRecordDecl::A' +// CHECK: public 'B':'testCXXRecordDecl::B' +// CHECK: CXXRecordDecl{{.*}} class TestCXXRecordDecl +// CHECK: FieldDecl template class TestCXXRecordDeclPack : public T... { }; // CHECK: CXXRecordDecl{{.*}} class TestCXXRecordDeclPack // CHECK: public 'T'... -// CHECK-NEXT: CXXRecordDecl{{.*}} class TestCXXRecordDeclPack +// CHECK: CXXRecordDecl{{.*}} class TestCXXRecordDeclPack thread_local int TestThreadLocalInt; // CHECK: TestThreadLocalInt {{.*}} tls_dynamic @@ -166,23 +172,23 @@ namespace testCXXConstructorDecl { }; } // CHECK: CXXConstructorDecl{{.*}} TestCXXConstructorDecl 'void {{.*}}' -// CHECK-NEXT: ParmVarDecl{{.*}} a -// CHECK-NEXT: ParmVarDecl{{.*}} i -// CHECK-NEXT: CXXCtorInitializer{{.*}}A -// CHECK-NEXT: Expr +// CHECK: ParmVarDecl{{.*}} a +// CHECK: ParmVarDecl{{.*}} i +// CHECK: CXXCtorInitializer{{.*}}A +// CHECK: Expr // CHECK: CXXCtorInitializer{{.*}}I -// CHECK-NEXT: Expr +// CHECK: Expr // CHECK: CompoundStmt // CHECK: CXXConstructorDecl{{.*}} TestCXXConstructorDecl 'void {{.*}}' -// CHECK-NEXT: ParmVarDecl{{.*}} a -// CHECK-NEXT: CXXCtorInitializer{{.*}}TestCXXConstructorDecl -// CHECK-NEXT: CXXConstructExpr{{.*}}TestCXXConstructorDecl +// CHECK: ParmVarDecl{{.*}} a +// CHECK: CXXCtorInitializer{{.*}}TestCXXConstructorDecl +// CHECK: CXXConstructExpr{{.*}}TestCXXConstructorDecl class TestCXXDestructorDecl { ~TestCXXDestructorDecl() { } }; // CHECK: CXXDestructorDecl{{.*}} ~TestCXXDestructorDecl 'void () noexcept' -// CHECK-NEXT: CompoundStmt +// CHECK: CompoundStmt // Test that the range of a defaulted members is computed correctly. class TestMemberRanges { @@ -212,15 +218,15 @@ class TestCXXConversionDecl { operator int() { return 0; } }; // CHECK: CXXConversionDecl{{.*}} operator int 'int ()' -// CHECK-NEXT: CompoundStmt +// CHECK: CompoundStmt namespace TestStaticAssertDecl { static_assert(true, "msg"); } // CHECK: NamespaceDecl{{.*}} TestStaticAssertDecl -// CHECK-NEXT: StaticAssertDecl{{.*> .*$}} -// CHECK-NEXT: CXXBoolLiteralExpr -// CHECK-NEXT: StringLiteral +// CHECK: StaticAssertDecl{{.*> .*$}} +// CHECK: CXXBoolLiteralExpr +// CHECK: StringLiteral namespace testFunctionTemplateDecl { class A { }; @@ -241,35 +247,35 @@ namespace testFunctionTemplateDecl { // explicit instantiation definition template void TestFunctionTemplate(D); } - // CHECK: FunctionTemplateDecl 0x{{.+}} <{{.+}}:[[@LINE-14]]:3, col:55> col:29 TestFunctionTemplate - // CHECK-NEXT: |-TemplateTypeParmDecl 0x{{.+}} col:21 referenced typename depth 0 index 0 T - // CHECK-NEXT: |-FunctionDecl 0x{{.+}} col:29 TestFunctionTemplate 'void (T)' - // CHECK-NEXT: | |-ParmVarDecl 0x{{.+}} col:51 'T' - // CHECK-NEXT: | `-CompoundStmt 0x{{.+}} - // CHECK-NEXT: |-FunctionDecl 0x{{.+}} col:29 used TestFunctionTemplate 'void (testFunctionTemplateDecl::A)' - // CHECK-NEXT: | |-TemplateArgument type 'testFunctionTemplateDecl::A' - // CHECK-NEXT: | | `-RecordType 0{{.+}} 'testFunctionTemplateDecl::A' - // CHECK-NEXT: | | `-CXXRecord 0x{{.+}} 'A' - // CHECK-NEXT: | |-ParmVarDecl 0x{{.+}} col:51 'testFunctionTemplateDecl::A' - // CHECK-NEXT: | `-CompoundStmt 0x{{.+}} - // CHECK-NEXT: |-Function 0x{{.+}} 'TestFunctionTemplate' 'void (B)' - // CHECK-NEXT: |-FunctionDecl 0x{{.+}} col:29 TestFunctionTemplate 'void (testFunctionTemplateDecl::C)' - // CHECK-NEXT: | |-TemplateArgument type 'testFunctionTemplateDecl::C' - // CHECK-NEXT: | | `-RecordType 0{{.+}} 'testFunctionTemplateDecl::C' - // CHECK-NEXT: | | `-CXXRecord 0x{{.+}} 'C' - // CHECK-NEXT: | `-ParmVarDecl 0x{{.+}} col:51 'testFunctionTemplateDecl::C' - // CHECK-NEXT: `-FunctionDecl 0x{{.+}} col:29 TestFunctionTemplate 'void (testFunctionTemplateDecl::D)' - // CHECK-NEXT: |-TemplateArgument type 'testFunctionTemplateDecl::D' - // CHECK-NEXT: | `-RecordType 0{{.+}} 'testFunctionTemplateDecl::D' - // CHECK-NEXT: | `-CXXRecord 0x{{.+}} 'D' - // CHECK-NEXT: |-ParmVarDecl 0x{{.+}} col:51 'testFunctionTemplateDecl::D' - // CHECK-NEXT: `-CompoundStmt 0x{{.+}} - - // CHECK: FunctionDecl 0x{{.+}} prev 0x{{.+}} <{{.+}}:[[@LINE-32]]:3, col:41> col:19 TestFunctionTemplate 'void (B)' - // CHECK-NEXT: |-TemplateArgument type 'testFunctionTemplateDecl::B' - // CHECK-NEXT: | `-RecordType 0{{.+}} 'testFunctionTemplateDecl::B' - // CHECK-NEXT: | `-CXXRecord 0x{{.+}} 'B' - // CHECK-NEXT: `-ParmVarDecl 0x{{.+}} col:41 'B':'testFunctionTemplateDecl::B' + // CHECK: FunctionTemplateDecl 0x{{.+}} <{{.+}}:[[@LINE-14]]:3, col:55> col:29 TestFunctionTemplate + // CHECK: |-TemplateTypeParmDecl 0x{{.+}} col:21 referenced typename depth 0 index 0 T + // CHECK: |-FunctionDecl 0x{{.+}} col:29 TestFunctionTemplate 'void (T)' + // CHECK: | |-ParmVarDecl 0x{{.+}} col:51 'T' + // CHECK: | `-CompoundStmt 0x{{.+}} + // CHECK: |-FunctionDecl 0x{{.+}} col:29 used TestFunctionTemplate 'void (testFunctionTemplateDecl::A)' + // CHECK: | |-TemplateArgument type 'testFunctionTemplateDecl::A' + // CHECK: | | `-typeDetails: RecordType 0{{.+}} 'testFunctionTemplateDecl::A' + // CHECK: | | `-CXXRecord 0x{{.+}} 'A' + // CHECK: | |-ParmVarDecl 0x{{.+}} col:51 'testFunctionTemplateDecl::A' + // CHECK: | `-CompoundStmt 0x{{.+}} + // CHECK: |-Function 0x{{.+}} 'TestFunctionTemplate' 'void (B)' + // CHECK: |-FunctionDecl 0x{{.+}} col:29 TestFunctionTemplate 'void (testFunctionTemplateDecl::C)' + // CHECK: | |-TemplateArgument type 'testFunctionTemplateDecl::C' + // CHECK: | | `-typeDetails: RecordType 0{{.+}} 'testFunctionTemplateDecl::C' + // CHECK: | | `-CXXRecord 0x{{.+}} 'C' + // CHECK: | `-ParmVarDecl 0x{{.+}} col:51 'testFunctionTemplateDecl::C' + // CHECK: `-FunctionDecl 0x{{.+}} col:29 TestFunctionTemplate 'void (testFunctionTemplateDecl::D)' + // CHECK: |-TemplateArgument type 'testFunctionTemplateDecl::D' + // CHECK: | `-typeDetails: RecordType 0{{.+}} 'testFunctionTemplateDecl::D' + // CHECK: | `-CXXRecord 0x{{.+}} 'D' + // CHECK: |-ParmVarDecl 0x{{.+}} col:51 'testFunctionTemplateDecl::D' + // CHECK: `-CompoundStmt 0x{{.+}} + + // CHECK: FunctionDecl 0x{{.+}} prev 0x{{.+}} <{{.+}}:[[@LINE-32]]:3, col:41> col:19 TestFunctionTemplate 'void (B)' + // CHECK: |-TemplateArgument type 'testFunctionTemplateDecl::B' + // CHECK: | `-typeDetails: RecordType 0{{.+}} 'testFunctionTemplateDecl::B' + // CHECK: | `-CXXRecord 0x{{.+}} 'B' + // CHECK: `-ParmVarDecl 0x{{.+}} col:41 'B':'testFunctionTemplateDecl::B' namespace testClassTemplateDecl { @@ -319,277 +325,174 @@ namespace testClassTemplateDecl { } // CHECK: ClassTemplateDecl 0x{{.+}} <{{.+}}:[[@LINE-40]]:3, line:[[@LINE-34]]:3> line:[[@LINE-40]]:30 TestClassTemplate{{$}} -// CHECK-NEXT: |-TemplateTypeParmDecl 0x{{.+}} col:21 typename depth 0 index 0 T{{$}} -// CHECK-NEXT: |-CXXRecordDecl 0x{{.+}} line:[[@LINE-42]]:30 class TestClassTemplate definition{{$}} -// CHECK-NEXT: | |-DefinitionData standard_layout has_user_declared_ctor can_const_default_init{{$}} -// CHECK-NEXT: | | |-DefaultConstructor exists non_trivial user_provided{{$}} -// CHECK-NEXT: | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} -// CHECK-NEXT: | | |-MoveConstructor{{$}} -// CHECK-NEXT: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} -// CHECK-NEXT: | | |-MoveAssignment{{$}} -// CHECK-NEXT: | | `-Destructor irrelevant non_trivial user_declared{{$}} -// CHECK-NEXT: | |-CXXRecordDecl 0x{{.+}} col:30 implicit referenced class TestClassTemplate{{$}} -// CHECK-NEXT: | |-AccessSpecDecl 0x{{.+}} col:3 public{{$}} -// CHECK-NEXT: | |-CXXConstructorDecl 0x[[#%x,TEMPLATE_CONSTRUCTOR_DECL:]] col:5 TestClassTemplate 'void ()'{{$}} -// CHECK-NEXT: | |-CXXDestructorDecl 0x[[#%x,TEMPLATE_DESTRUCTOR_DECL:]] col:5 ~TestClassTemplate 'void ()' not_selected{{$}} -// CHECK-NEXT: | |-CXXMethodDecl 0x[[#%x,TEMPLATE_METHOD_DECL:]] col:9 j 'int ()'{{$}} -// CHECK-NEXT: | `-FieldDecl 0x{{.+}} col:9 i 'int'{{$}} -// CHECK-NEXT: |-ClassTemplateSpecializationDecl 0x{{.+}} line:[[@LINE-56]]:30 class TestClassTemplate definition implicit_instantiation{{$}} -// CHECK-NEXT: | |-DefinitionData standard_layout has_user_declared_ctor can_const_default_init{{$}} -// CHECK-NEXT: | | |-DefaultConstructor exists non_trivial user_provided{{$}} -// CHECK-NEXT: | | |-CopyConstructor simple trivial has_const_param implicit_has_const_param{{$}} -// CHECK-NEXT: | | |-MoveConstructor{{$}} -// CHECK-NEXT: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} -// CHECK-NEXT: | | |-MoveAssignment{{$}} -// CHECK-NEXT: | | `-Destructor non_trivial user_declared{{$}} -// CHECK-NEXT: | |-TemplateArgument type 'testClassTemplateDecl::A'{{$}} -// CHECK-NEXT: | | `-RecordType 0{{.+}} 'testClassTemplateDecl::A'{{$}} -// CHECK-NEXT: | | `-CXXRecord 0x{{.+}} 'A'{{$}} -// CHECK-NEXT: | |-CXXRecordDecl 0x{{.+}} col:30 implicit class TestClassTemplate{{$}} -// CHECK-NEXT: | |-AccessSpecDecl 0x{{.+}} col:3 public{{$}} -// CHECK-NEXT: | |-CXXConstructorDecl 0x{{.+}} col:5 used TestClassTemplate 'void ()' implicit_instantiation instantiated_from 0x[[#TEMPLATE_CONSTRUCTOR_DECL]]{{$}} -// CHECK-NEXT: | |-CXXDestructorDecl 0x{{.+}} col:5 used ~TestClassTemplate 'void () noexcept' implicit_instantiation instantiated_from 0x[[#TEMPLATE_DESTRUCTOR_DECL]]{{$}} -// CHECK-NEXT: | |-CXXMethodDecl 0x{{.+}} col:9 j 'int ()' implicit_instantiation instantiated_from 0x[[#TEMPLATE_METHOD_DECL]]{{$}} -// CHECK-NEXT: | |-FieldDecl 0x{{.+}} col:9 i 'int'{{$}} -// CHECK-NEXT: | `-CXXConstructorDecl 0x{{.+}} col:30 implicit constexpr TestClassTemplate 'void (const TestClassTemplate &)' inline default trivial noexcept-unevaluated 0x{{.+}}{{$}} -// CHECK-NEXT: | `-ParmVarDecl 0x{{.+}} col:30 'const TestClassTemplate &'{{$}} -// CHECK-NEXT: |-ClassTemplateSpecialization 0x{{.+}} 'TestClassTemplate'{{$}} -// CHECK-NEXT: |-ClassTemplateSpecialization 0x{{.+}} 'TestClassTemplate'{{$}} -// CHECK-NEXT: `-ClassTemplateSpecialization 0x{{.+}} 'TestClassTemplate'{{$}} +// CHECK: |-TemplateTypeParmDecl 0x{{.+}} col:21 typename depth 0 index 0 T{{$}} +// CHECK: |-CXXRecordDecl 0x{{.+}} line:[[@LINE-42]]:30 class TestClassTemplate definition{{$}} +// CHECK: | |-DefinitionData standard_layout has_user_declared_ctor can_const_default_init{{$}} +// CHECK: | | |-DefaultConstructor exists non_trivial user_provided{{$}} +// CHECK: | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} +// CHECK: | | |-MoveConstructor{{$}} +// CHECK: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} +// CHECK: | | |-MoveAssignment{{$}} +// CHECK: | | `-Destructor irrelevant non_trivial user_declared{{$}} +// CHECK: | |-CXXRecordDecl 0x{{.+}} col:30 implicit referenced class TestClassTemplate{{$}} +// CHECK: | |-AccessSpecDecl 0x{{.+}} col:3 public{{$}} +// CHECK: | |-CXXConstructorDecl 0x{{.+}} col:5 TestClassTemplate 'void ()'{{$}} +// CHECK: | |-CXXDestructorDecl 0x{{.+}} col:5 ~TestClassTemplate 'void ()' not_selected{{$}} +// CHECK: | |-CXXMethodDecl 0x{{.+}} col:9 j 'int ()'{{$}} +// CHECK: | `-FieldDecl 0x{{.+}} col:9 i 'int'{{$}} +// CHECK: |-ClassTemplateSpecializationDecl 0x{{.+}} line:[[@LINE-56]]:30 class TestClassTemplate definition implicit_instantiation{{$}} +// CHECK: | |-DefinitionData standard_layout has_user_declared_ctor can_const_default_init{{$}} +// CHECK: | | |-DefaultConstructor exists non_trivial user_provided{{$}} +// CHECK: | | |-CopyConstructor simple trivial has_const_param implicit_has_const_param{{$}} +// CHECK: | | |-MoveConstructor{{$}} +// CHECK: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} +// CHECK: | | |-MoveAssignment{{$}} +// CHECK: | | `-Destructor non_trivial user_declared{{$}} +// CHECK: | |-TemplateArgument type 'testClassTemplateDecl::A'{{$}} +// CHECK: | | `-typeDetails: RecordType 0{{.+}} 'testClassTemplateDecl::A'{{$}} +// CHECK: | | `-CXXRecord 0x{{.+}} 'A'{{$}} +// CHECK: | |-CXXRecordDecl 0x{{.+}} col:30 implicit class TestClassTemplate{{$}} +// CHECK: | |-AccessSpecDecl 0x{{.+}} col:3 public{{$}} +// CHECK: | |-CXXConstructorDecl 0x{{.+}} col:5 used TestClassTemplate 'void ()' implicit_instantiation instantiated_from {{0x[^ ]+}}{{$}} +// CHECK: | |-CXXDestructorDecl 0x{{.+}} col:5 used ~TestClassTemplate 'void () noexcept' implicit_instantiation instantiated_from {{0x[^ ]+}}{{$}} +// CHECK: | |-CXXMethodDecl 0x{{.+}} col:9 j 'int ()' implicit_instantiation instantiated_from {{0x[^ ]+}}{{$}} +// CHECK: | |-FieldDecl 0x{{.+}} col:9 i 'int'{{$}} +// CHECK: | `-CXXConstructorDecl {{.+}} implicit constexpr TestClassTemplate 'void (const TestClassTemplate &)' inline default trivial noexcept-unevaluated +// CHECK: | `-ParmVarDecl 0x{{.+}} 'const TestClassTemplate &' +// CHECK: |-ClassTemplateSpecialization 0x{{.+}} 'TestClassTemplate'{{$}} +// CHECK: |-ClassTemplateSpecialization 0x{{.+}} 'TestClassTemplate'{{$}} +// CHECK: `-ClassTemplateSpecialization 0x{{.+}} 'TestClassTemplate'{{$}} // CHECK: ClassTemplateSpecializationDecl 0x{{.+}} <{{.+}}:[[@LINE-67]]:3, line:[[@LINE-65]]:3> line:[[@LINE-67]]:20 class TestClassTemplate definition explicit_specialization{{$}} -// CHECK-NEXT: |-DefinitionData pass_in_registers standard_layout trivially_copyable trivial literal{{$}} -// CHECK-NEXT: | |-DefaultConstructor exists trivial needs_implicit{{$}} -// CHECK-NEXT: | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} -// CHECK-NEXT: | |-MoveConstructor exists simple trivial needs_implicit{{$}} -// CHECK-NEXT: | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} -// CHECK-NEXT: | |-MoveAssignment exists simple trivial needs_implicit{{$}} -// CHECK-NEXT: | `-Destructor simple irrelevant trivial needs_implicit{{$}} -// CHECK-NEXT: |-TemplateArgument type 'testClassTemplateDecl::B'{{$}} -// CHECK-NEXT: | `-RecordType 0{{.+}} 'testClassTemplateDecl::B'{{$}} -// CHECK-NEXT: | `-CXXRecord 0x{{.+}} 'B'{{$}} -// CHECK-NEXT: |-CXXRecordDecl 0x{{.+}} col:20 implicit class TestClassTemplate{{$}} -// CHECK-NEXT: `-FieldDecl 0x{{.+}} col:9 j 'int'{{$}} +// CHECK: |-DefinitionData pass_in_registers standard_layout trivially_copyable trivial literal{{$}} +// CHECK: | |-DefaultConstructor exists trivial needs_implicit{{$}} +// CHECK: | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} +// CHECK: | |-MoveConstructor exists simple trivial needs_implicit{{$}} +// CHECK: | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} +// CHECK: | |-MoveAssignment exists simple trivial needs_implicit{{$}} +// CHECK: | `-Destructor simple irrelevant trivial needs_implicit{{$}} +// CHECK: |-TemplateArgument type 'testClassTemplateDecl::B'{{$}} +// CHECK: | `-typeDetails: RecordType 0{{.+}} 'testClassTemplateDecl::B'{{$}} +// CHECK: | `-CXXRecord 0x{{.+}} 'B'{{$}} +// CHECK: |-CXXRecordDecl 0x{{.+}} col:20 implicit class TestClassTemplate{{$}} +// CHECK: `-FieldDecl 0x{{.+}} col:9 j 'int'{{$}} // CHECK: ClassTemplateSpecializationDecl 0x{{.+}} <{{.+}}:{{.*}}:3, col:44> col:25 class TestClassTemplate definition explicit_instantiation_declaration{{$}} -// CHECK-NEXT: |-DefinitionData standard_layout has_user_declared_ctor can_const_default_init{{$}} -// CHECK-NEXT: | |-DefaultConstructor exists non_trivial user_provided{{$}} -// CHECK-NEXT: | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} -// CHECK-NEXT: | |-MoveConstructor{{$}} -// CHECK-NEXT: | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} -// CHECK-NEXT: | |-MoveAssignment{{$}} -// CHECK-NEXT: | `-Destructor non_trivial user_declared{{$}} -// CHECK-NEXT: |-TemplateArgument type 'testClassTemplateDecl::C'{{$}} -// CHECK-NEXT: | `-RecordType 0{{.+}} 'testClassTemplateDecl::C'{{$}} -// CHECK-NEXT: | `-CXXRecord 0x{{.+}} 'C'{{$}} -// CHECK-NEXT: |-CXXRecordDecl 0x{{.+}} col:30 implicit class TestClassTemplate{{$}} -// CHECK-NEXT: |-AccessSpecDecl 0x{{.+}} col:3 public{{$}} -// CHECK-NEXT: |-CXXConstructorDecl 0x{{.+}} col:5 TestClassTemplate 'void ()' explicit_instantiation_declaration instantiated_from {{0x[^ ]+}}{{$}} -// CHECK-NEXT: |-CXXDestructorDecl 0x{{.+}} col:5 ~TestClassTemplate 'void ()' explicit_instantiation_declaration noexcept-unevaluated 0x{{[^ ]+}} instantiated_from {{0x[^ ]+}} -// CHECK-NEXT: |-CXXMethodDecl 0x{{.+}} col:9 j 'int ()' explicit_instantiation_declaration instantiated_from {{0x[^ ]+}}{{$}} -// CHECK-NEXT: `-FieldDecl 0x{{.+}} col:9 i 'int'{{$}} +// CHECK: |-DefinitionData standard_layout has_user_declared_ctor can_const_default_init{{$}} +// CHECK: | |-DefaultConstructor exists non_trivial user_provided{{$}} +// CHECK: | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} +// CHECK: | |-MoveConstructor{{$}} +// CHECK: | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} +// CHECK: | |-MoveAssignment{{$}} +// CHECK: | `-Destructor non_trivial user_declared{{$}} +// CHECK: |-TemplateArgument type 'testClassTemplateDecl::C'{{$}} +// CHECK: | `-typeDetails: RecordType 0{{.+}} 'testClassTemplateDecl::C'{{$}} +// CHECK: | `-CXXRecord 0x{{.+}} 'C'{{$}} +// CHECK: |-CXXRecordDecl 0x{{.+}} col:30 implicit class TestClassTemplate{{$}} +// CHECK: |-AccessSpecDecl 0x{{.+}} col:3 public{{$}} +// CHECK: |-CXXConstructorDecl 0x{{.+}} col:5 TestClassTemplate 'void ()' explicit_instantiation_declaration instantiated_from {{0x[^ ]+}}{{$}} +// CHECK: |-CXXDestructorDecl 0x{{.+}} col:5 ~TestClassTemplate 'void ()' explicit_instantiation_declaration noexcept-unevaluated 0x{{[^ ]+}} instantiated_from {{0x[^ ]+}} +// CHECK: |-CXXMethodDecl 0x{{.+}} col:9 j 'int ()' explicit_instantiation_declaration instantiated_from {{0x[^ ]+}}{{$}} +// CHECK: `-FieldDecl 0x{{.+}} col:9 i 'int'{{$}} // CHECK: ClassTemplateSpecializationDecl 0x{{.+}} <{{.+}}:[[@LINE-91]]:3, col:37> col:18 class TestClassTemplate definition explicit_instantiation_definition{{$}} -// CHECK-NEXT: |-DefinitionData standard_layout has_user_declared_ctor can_const_default_init{{$}} -// CHECK-NEXT: | |-DefaultConstructor exists non_trivial user_provided{{$}} -// CHECK-NEXT: | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} -// CHECK-NEXT: | |-MoveConstructor{{$}} -// CHECK-NEXT: | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} -// CHECK-NEXT: | |-MoveAssignment{{$}} -// CHECK-NEXT: | `-Destructor non_trivial user_declared{{$}} -// CHECK-NEXT: |-TemplateArgument type 'testClassTemplateDecl::D'{{$}} -// CHECK-NEXT: | `-RecordType 0{{.+}} 'testClassTemplateDecl::D'{{$}} -// CHECK-NEXT: | `-CXXRecord 0x{{.+}} 'D'{{$}} -// CHECK-NEXT: |-CXXRecordDecl 0x{{.+}} col:30 implicit class TestClassTemplate{{$}} -// CHECK-NEXT: |-AccessSpecDecl 0x{{.+}} col:3 public{{$}} -// CHECK-NEXT: |-CXXConstructorDecl 0x{{.+}} col:5 TestClassTemplate 'void ()' implicit_instantiation instantiated_from {{0x[^ ]+}}{{$}} -// CHECK-NEXT: |-CXXDestructorDecl 0x{{.+}} col:5 ~TestClassTemplate 'void ()' implicit_instantiation noexcept-unevaluated 0x{{.+}} instantiated_from {{0x[^ ]+}}{{$}} -// CHECK-NEXT: |-CXXMethodDecl 0x{{.+}} col:9 j 'int ()' implicit_instantiation instantiated_from {{0x[^ ]+}}{{$}} -// CHECK-NEXT: `-FieldDecl 0x{{.+}} col:9 i 'int'{{$}} +// CHECK: |-DefinitionData standard_layout has_user_declared_ctor can_const_default_init{{$}} +// CHECK: | |-DefaultConstructor exists non_trivial user_provided{{$}} +// CHECK: | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} +// CHECK: | |-MoveConstructor{{$}} +// CHECK: | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} +// CHECK: | |-MoveAssignment{{$}} +// CHECK: | `-Destructor non_trivial user_declared{{$}} +// CHECK: |-TemplateArgument type 'testClassTemplateDecl::D'{{$}} +// CHECK: | `-typeDetails: RecordType 0{{.+}} 'testClassTemplateDecl::D'{{$}} +// CHECK: | `-CXXRecord 0x{{.+}} 'D'{{$}} +// CHECK: |-CXXRecordDecl 0x{{.+}} col:30 implicit class TestClassTemplate{{$}} +// CHECK: |-AccessSpecDecl 0x{{.+}} col:3 public{{$}} +// CHECK: |-CXXConstructorDecl 0x{{.+}} col:5 TestClassTemplate 'void ()' implicit_instantiation instantiated_from {{0x[^ ]+}}{{$}} +// CHECK: |-CXXDestructorDecl 0x{{.+}} col:5 ~TestClassTemplate 'void ()' implicit_instantiation noexcept-unevaluated 0x{{.+}} instantiated_from {{0x[^ ]+}}{{$}} +// CHECK: |-CXXMethodDecl 0x{{.+}} col:9 j 'int ()' implicit_instantiation instantiated_from {{0x[^ ]+}}{{$}} +// CHECK: `-FieldDecl 0x{{.+}} col:9 i 'int'{{$}} // CHECK: ClassTemplateDecl 0x{{.+}} <{{.+}}:[[@LINE-106]]:3, line:[[@LINE-104]]:3> line:[[@LINE-106]]:44 TestClassTemplatePartial{{$}} -// CHECK-NEXT: |-TemplateTypeParmDecl 0x{{.+}} col:21 typename depth 0 index 0 T1{{$}} -// CHECK-NEXT: |-TemplateTypeParmDecl 0x{{.+}} col:34 typename depth 0 index 1 T2{{$}} -// CHECK-NEXT: `-CXXRecordDecl 0x{{.+}} line:[[@LINE-109]]:44 class TestClassTemplatePartial definition{{$}} -// CHECK-NEXT: |-DefinitionData standard_layout trivially_copyable trivial literal{{$}} -// CHECK-NEXT: | |-DefaultConstructor exists trivial needs_implicit{{$}} -// CHECK-NEXT: | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} -// CHECK-NEXT: | |-MoveConstructor exists simple trivial needs_implicit{{$}} -// CHECK-NEXT: | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} -// CHECK-NEXT: | |-MoveAssignment exists simple trivial needs_implicit{{$}} -// CHECK-NEXT: | `-Destructor simple irrelevant trivial needs_implicit{{$}} -// CHECK-NEXT: |-CXXRecordDecl 0x{{.+}} col:44 implicit class TestClassTemplatePartial{{$}} -// CHECK-NEXT: `-FieldDecl 0x{{.+}} col:9 i 'int'{{$}} +// CHECK: |-TemplateTypeParmDecl 0x{{.+}} col:21 typename depth 0 index 0 T1{{$}} +// CHECK: |-TemplateTypeParmDecl 0x{{.+}} col:34 typename depth 0 index 1 T2{{$}} +// CHECK: `-CXXRecordDecl 0x{{.+}} line:[[@LINE-109]]:44 class TestClassTemplatePartial definition{{$}} +// CHECK: |-DefinitionData standard_layout trivially_copyable trivial literal{{$}} +// CHECK: | |-DefaultConstructor exists trivial needs_implicit{{$}} +// CHECK: | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} +// CHECK: | |-MoveConstructor exists simple trivial needs_implicit{{$}} +// CHECK: | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} +// CHECK: | |-MoveAssignment exists simple trivial needs_implicit{{$}} +// CHECK: | `-Destructor simple irrelevant trivial needs_implicit{{$}} +// CHECK: |-CXXRecordDecl 0x{{.+}} col:44 implicit class TestClassTemplatePartial{{$}} +// CHECK: `-FieldDecl 0x{{.+}} col:9 i 'int'{{$}} // CHECK: ClassTemplatePartialSpecializationDecl 0x{{.+}} <{{.+}}:[[@LINE-117]]:3, line:[[@LINE-115]]:3> line:[[@LINE-117]]:31 class TestClassTemplatePartial definition explicit_specialization{{$}} -// CHECK-NEXT: |-DefinitionData standard_layout trivially_copyable trivial literal{{$}} -// CHECK-NEXT: | |-DefaultConstructor exists trivial needs_implicit{{$}} -// CHECK-NEXT: | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} -// CHECK-NEXT: | |-MoveConstructor exists simple trivial needs_implicit{{$}} -// CHECK-NEXT: | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} -// CHECK-NEXT: | |-MoveAssignment exists simple trivial needs_implicit{{$}} -// CHECK-NEXT: | `-Destructor simple irrelevant trivial needs_implicit{{$}} -// CHECK-NEXT: |-TemplateArgument type 'type-parameter-0-0'{{$}} -// CHECK-NEXT: | `-TemplateTypeParmType 0x{{.+}} 'type-parameter-0-0' dependent depth 0 index 0{{$}} -// CHECK-NEXT: |-TemplateArgument type 'testClassTemplateDecl::A'{{$}} -// CHECK-NEXT: | `-RecordType 0x{{.+}} 'testClassTemplateDecl::A'{{$}} -// CHECK-NEXT: | `-CXXRecord 0x{{.+}} 'A'{{$}} -// CHECK-NEXT: |-TemplateTypeParmDecl 0x{{.+}} col:21 referenced typename depth 0 index 0 T1{{$}} -// CHECK-NEXT: |-CXXRecordDecl 0x{{.+}} col:31 implicit class TestClassTemplatePartial{{$}} -// CHECK-NEXT: `-FieldDecl 0x{{.+}} col:9 j 'int'{{$}} +// CHECK: |-DefinitionData standard_layout trivially_copyable trivial literal{{$}} +// CHECK: | |-DefaultConstructor exists trivial needs_implicit{{$}} +// CHECK: | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} +// CHECK: | |-MoveConstructor exists simple trivial needs_implicit{{$}} +// CHECK: | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} +// CHECK: | |-MoveAssignment exists simple trivial needs_implicit{{$}} +// CHECK: | `-Destructor simple irrelevant trivial needs_implicit{{$}} +// CHECK: |-TemplateArgument type 'type-parameter-0-0'{{$}} +// CHECK: | `-typeDetails: TemplateTypeParmType 0x{{.+}} 'type-parameter-0-0' dependent depth 0 index 0{{$}} +// CHECK: |-TemplateArgument type 'testClassTemplateDecl::A'{{$}} +// CHECK: | `-typeDetails: RecordType 0x{{.+}} 'testClassTemplateDecl::A'{{$}} +// CHECK: | `-CXXRecord 0x{{.+}} 'A'{{$}} +// CHECK: |-TemplateTypeParmDecl 0x{{.+}} col:21 referenced typename depth 0 index 0 T1{{$}} +// CHECK: |-CXXRecordDecl 0x{{.+}} col:31 implicit class TestClassTemplatePartial{{$}} +// CHECK: `-FieldDecl 0x{{.+}} col:9 j 'int'{{$}} // CHECK: ClassTemplateDecl 0x{{.+}} <{{.+}}:[[@LINE-130]]:3, col:37> col:37 TestTemplateDefaultType{{$}} -// CHECK-NEXT: |-TemplateTypeParmDecl 0x{{.+}} col:21 typename depth 0 index 0 T{{$}} -// CHECK-NEXT: | `-TemplateArgument type 'int'{{$}} -// CHECK-NEXT: | `-BuiltinType 0x{{.+}} 'int'{{$}} -// CHECK-NEXT: `-CXXRecordDecl 0x{{.+}} col:37 struct TestTemplateDefaultType{{$}} +// CHECK: |-TemplateTypeParmDecl 0x{{.+}} col:21 typename depth 0 index 0 T{{$}} +// CHECK: | `-TemplateArgument type 'int'{{$}} +// CHECK: | `-typeDetails: BuiltinType 0x{{.+}} 'int'{{$}} +// CHECK: `-CXXRecordDecl 0x{{.+}} col:37 struct TestTemplateDefaultType{{$}} // CHECK: ClassTemplateDecl 0x{{.+}} prev 0x{{.+}} <{{.+}}:[[@LINE-135]]:3, col:57> col:31 TestTemplateDefaultType{{$}} -// CHECK-NEXT: |-TemplateTypeParmDecl 0x{{.+}} col:21 typename depth 0 index 0 T{{$}} -// CHECK-NEXT: | `-TemplateArgument type 'int'{{$}} -// CHECK-NEXT: | |-inherited from TemplateTypeParm 0x{{.+}} 'T'{{$}} -// CHECK-NEXT: | `-BuiltinType 0x{{.+}} 'int'{{$}} -// CHECK-NEXT: `-CXXRecordDecl 0x{{.+}} prev 0x{{.+}} col:31 struct TestTemplateDefaultType definition{{$}} -// CHECK-NEXT: |-DefinitionData empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init{{$}} -// CHECK-NEXT: | |-DefaultConstructor exists trivial constexpr needs_implicit defaulted_is_constexpr{{$}} -// CHECK-NEXT: | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} -// CHECK-NEXT: | |-MoveConstructor exists simple trivial needs_implicit{{$}} -// CHECK-NEXT: | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} -// CHECK-NEXT: | |-MoveAssignment exists simple trivial needs_implicit{{$}} -// CHECK-NEXT: | `-Destructor simple irrelevant trivial needs_implicit{{$}} -// CHECK-NEXT: `-CXXRecordDecl 0x{{.+}} col:31 implicit struct TestTemplateDefaultType{{$}} +// CHECK: |-TemplateTypeParmDecl 0x{{.+}} col:21 typename depth 0 index 0 T{{$}} +// CHECK: | `-TemplateArgument type 'int'{{$}} +// CHECK: | |-inherited from TemplateTypeParm 0x{{.+}} 'T'{{$}} +// CHECK: | `-typeDetails: BuiltinType 0x{{.+}} 'int'{{$}} +// CHECK: `-CXXRecordDecl 0x{{.+}} prev 0x{{.+}} col:31 struct TestTemplateDefaultType definition{{$}} +// CHECK: |-DefinitionData empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init{{$}} +// CHECK: | |-DefaultConstructor exists trivial constexpr needs_implicit defaulted_is_constexpr{{$}} +// CHECK: | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} +// CHECK: | |-MoveConstructor exists simple trivial needs_implicit{{$}} +// CHECK: | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} +// CHECK: | |-MoveAssignment exists simple trivial needs_implicit{{$}} +// CHECK: | `-Destructor simple irrelevant trivial needs_implicit{{$}} +// CHECK: `-CXXRecordDecl 0x{{.+}} col:31 implicit struct TestTemplateDefaultType{{$}} // CHECK: ClassTemplateDecl 0x{{.+}} <{{.+}}:[[@LINE-148]]:3, col:31> col:31 TestTemplateDefaultNonType{{$}} -// CHECK-NEXT: |-NonTypeTemplateParmDecl 0x{{.+}} col:16 'int' depth 0 index 0 I{{$}} -// CHECK-NEXT: | `-TemplateArgument expr '42'{{$}} -// CHECK-NEXT: | `-IntegerLiteral 0x{{.+}} 'int' 42{{$}} -// CHECK-NEXT: `-CXXRecordDecl 0x{{.+}} col:31 struct TestTemplateDefaultNonType{{$}} +// CHECK: |-NonTypeTemplateParmDecl 0x{{.+}} col:16 'int' depth 0 index 0 I{{$}} +// CHECK: | `-TemplateArgument expr '42'{{$}} +// CHECK: | `-IntegerLiteral 0x{{.+}} 'int' 42{{$}} +// CHECK: `-CXXRecordDecl 0x{{.+}} col:31 struct TestTemplateDefaultNonType{{$}} // CHECK: ClassTemplateDecl 0x{{.+}} <{{.+}}:{{.*}}:3, col:68> col:68 TestTemplateTemplateDefaultType{{$}} -// CHECK-NEXT: |-TemplateTemplateParmDecl 0x{{.+}} col:37 depth 0 index 0 TT{{$}} -// CHECK-NEXT: | |-TemplateTypeParmDecl 0x{{.+}} col:29 typename depth 1 index 0{{$}} -// CHECK-NEXT: | `-TemplateArgument template 'TestClassTemplate':'testClassTemplateDecl::TestClassTemplate' qualified{{$}} -// CHECK-NEXT: | `-ClassTemplateDecl 0x{{.+}} line:{{.+}}:30 TestClassTemplate{{$}} -// CHECK-NEXT: `-CXXRecordDecl 0x{{.+}} col:68 struct TestTemplateTemplateDefaultType{{$}} +// CHECK: |-TemplateTemplateParmDecl 0x{{.+}} col:37 depth 0 index 0 TT{{$}} +// CHECK: | |-TemplateTypeParmDecl 0x{{.+}} col:29 typename depth 1 index 0{{$}} +// CHECK: | `-TemplateArgument template 'TestClassTemplate':'testClassTemplateDecl::TestClassTemplate' qualified{{$}} +// CHECK: | `-ClassTemplateDecl 0x{{.+}} line:{{.+}}:30 TestClassTemplate{{$}} +// CHECK: `-CXXRecordDecl 0x{{.+}} col:68 struct TestTemplateTemplateDefaultType{{$}} // CHECK: ClassTemplateDecl 0x{{.+}} prev 0x{{.+}} <{{.+}}:{{.*}}:3, col:82> col:48 TestTemplateTemplateDefaultType{{$}} -// CHECK-NEXT: |-TemplateTemplateParmDecl 0x{{.+}} col:37 depth 0 index 0 TT{{$}} -// CHECK-NEXT: | |-TemplateTypeParmDecl 0x{{.+}} col:29 typename depth 1 index 0{{$}} -// CHECK-NEXT: | `-TemplateArgument template 'TestClassTemplate':'testClassTemplateDecl::TestClassTemplate' qualified{{$}} -// CHECK-NEXT: | |-inherited from TemplateTemplateParm 0x{{.+}} 'TT'{{$}} -// CHECK-NEXT: | `-ClassTemplateDecl 0x{{.+}} line:{{.+}}:30 TestClassTemplate -// CHECK-NEXT: `-CXXRecordDecl 0x{{.+}} prev 0x{{.+}} col:48 struct TestTemplateTemplateDefaultType definition{{$}} -// CHECK-NEXT: |-DefinitionData empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init{{$}} -// CHECK-NEXT: | |-DefaultConstructor exists trivial constexpr needs_implicit defaulted_is_constexpr{{$}} -// CHECK-NEXT: | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} -// CHECK-NEXT: | |-MoveConstructor exists simple trivial needs_implicit{{$}} -// CHECK-NEXT: | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} -// CHECK-NEXT: | |-MoveAssignment exists simple trivial needs_implicit{{$}} -// CHECK-NEXT: | `-Destructor simple irrelevant trivial needs_implicit{{$}} -// CHECK-NEXT: `-CXXRecordDecl 0x{{.+}} col:48 implicit struct TestTemplateTemplateDefaultType{{$}} - - -namespace testClassTemplateDecl { - template struct TestClassTemplateWithScopedMemberEnum { - enum class E1 : T { A, B, C, D }; - enum class E2 : int { A, B, C, D }; - enum class E3 : T; - enum class E4 : int; - }; - - template struct TestClassTemplateWithScopedMemberEnum; - - TestClassTemplateWithScopedMemberEnum TestClassTemplateWithScopedMemberEnumObject; -} - -// CHECK: ClassTemplateDecl 0x{{.+}} <{{.+}}:[[@LINE-12]]:3, line:[[@LINE-7]]:3> line:[[@LINE-12]]:31 TestClassTemplateWithScopedMemberEnum -// CHECK-NEXT: |-TemplateTypeParmDecl 0x{{.+}} col:21 referenced typename depth 0 index 0 T -// CHECK-NEXT: |-CXXRecordDecl 0x{{.+}} line:[[@LINE-14]]:31 struct TestClassTemplateWithScopedMemberEnum definition -// CHECK: | |-EnumDecl 0x[[#%x,SCOPED_MEMBER_ENUM_E1:]] col:16 class E1 'T' -// CHECK-NEXT: | | |-EnumConstantDecl 0x{{.+}} col:25 A 'testClassTemplateDecl::TestClassTemplateWithScopedMemberEnum::E1' -// CHECK-NEXT: | | |-EnumConstantDecl 0x{{.+}} col:28 B 'testClassTemplateDecl::TestClassTemplateWithScopedMemberEnum::E1' -// CHECK-NEXT: | | |-EnumConstantDecl 0x{{.+}} col:31 C 'testClassTemplateDecl::TestClassTemplateWithScopedMemberEnum::E1' -// CHECK-NEXT: | | `-EnumConstantDecl 0x{{.+}} col:34 D 'testClassTemplateDecl::TestClassTemplateWithScopedMemberEnum::E1' -// CHECK-NEXT: | |-EnumDecl 0x[[#%x,SCOPED_MEMBER_ENUM_E2:]] col:16 class E2 'int' -// CHECK-NEXT: | | |-EnumConstantDecl 0x{{.+}} col:27 A 'testClassTemplateDecl::TestClassTemplateWithScopedMemberEnum::E2' -// CHECK-NEXT: | | |-EnumConstantDecl 0x{{.+}} col:30 B 'testClassTemplateDecl::TestClassTemplateWithScopedMemberEnum::E2' -// CHECK-NEXT: | | |-EnumConstantDecl 0x{{.+}} col:33 C 'testClassTemplateDecl::TestClassTemplateWithScopedMemberEnum::E2' -// CHECK-NEXT: | | `-EnumConstantDecl 0x{{.+}} col:36 D 'testClassTemplateDecl::TestClassTemplateWithScopedMemberEnum::E2' -// CHECK-NEXT: | |-EnumDecl 0x[[#%x,SCOPED_MEMBER_ENUM_E3:]] col:16 class E3 'T' -// CHECK-NEXT: | `-EnumDecl 0x[[#%x,SCOPED_MEMBER_ENUM_E4:]] col:16 class E4 'int' -// CHECK-NEXT: |-ClassTemplateSpecialization 0x{{.+}} 'TestClassTemplateWithScopedMemberEnum' -// CHECK-NEXT: `-ClassTemplateSpecializationDecl 0x{{.+}} line:[[@LINE-28]]:31 struct TestClassTemplateWithScopedMemberEnum definition implicit_instantiation -// CHECK: |-TemplateArgument type 'int' -// CHECK-NEXT: | `-BuiltinType 0x{{.+}} 'int' -// CHECK: |-EnumDecl 0x{{.+}} col:16 class E1 'int' instantiated_from 0x[[#SCOPED_MEMBER_ENUM_E1]]{{$}} -// CHECK-NEXT: |-EnumDecl 0x{{.+}} col:16 class E2 'int' instantiated_from 0x[[#SCOPED_MEMBER_ENUM_E2]]{{$}} -// CHECK-NEXT: |-EnumDecl 0x{{.+}} col:16 class E3 'int' instantiated_from 0x[[#SCOPED_MEMBER_ENUM_E3]]{{$}} -// CHECK-NEXT: |-EnumDecl 0x{{.+}} col:16 class E4 'int' instantiated_from 0x[[#SCOPED_MEMBER_ENUM_E4]]{{$}} - -// CHECK: ClassTemplateSpecializationDecl 0x{{.+}} <{{.+}}:[[@LINE-29]]:3, col:65> col:19 struct TestClassTemplateWithScopedMemberEnum definition explicit_instantiation_definition -// CHECK: |-TemplateArgument type 'unsigned int' -// CHECK-NEXT: | `-BuiltinType 0x{{.+}} 'unsigned int' -// CHECK: |-EnumDecl 0x{{.+}} col:16 class E1 'unsigned int' instantiated_from 0x[[#SCOPED_MEMBER_ENUM_E1]]{{$}} -// CHECK-NEXT: | |-EnumConstantDecl 0x{{.+}} col:25 A 'testClassTemplateDecl::TestClassTemplateWithScopedMemberEnum::E1' -// CHECK-NEXT: | |-EnumConstantDecl 0x{{.+}} col:28 B 'testClassTemplateDecl::TestClassTemplateWithScopedMemberEnum::E1' -// CHECK-NEXT: | |-EnumConstantDecl 0x{{.+}} col:31 C 'testClassTemplateDecl::TestClassTemplateWithScopedMemberEnum::E1' -// CHECK-NEXT: | `-EnumConstantDecl 0x{{.+}} col:34 D 'testClassTemplateDecl::TestClassTemplateWithScopedMemberEnum::E1' -// CHECK-NEXT: |-EnumDecl 0x{{.+}} col:16 class E2 'int' instantiated_from 0x[[#SCOPED_MEMBER_ENUM_E2]]{{$}} -// CHECK-NEXT: | |-EnumConstantDecl 0x{{.+}} col:27 A 'testClassTemplateDecl::TestClassTemplateWithScopedMemberEnum::E2' -// CHECK-NEXT: | |-EnumConstantDecl 0x{{.+}} col:30 B 'testClassTemplateDecl::TestClassTemplateWithScopedMemberEnum::E2' -// CHECK-NEXT: | |-EnumConstantDecl 0x{{.+}} col:33 C 'testClassTemplateDecl::TestClassTemplateWithScopedMemberEnum::E2' -// CHECK-NEXT: | `-EnumConstantDecl 0x{{.+}} col:36 D 'testClassTemplateDecl::TestClassTemplateWithScopedMemberEnum::E2' -// CHECK-NEXT: |-EnumDecl 0x{{.+}} col:16 class E3 'unsigned int' instantiated_from 0x[[#SCOPED_MEMBER_ENUM_E3]]{{$}} -// CHECK-NEXT: `-EnumDecl 0x{{.+}} col:16 class E4 'int' instantiated_from 0x[[#SCOPED_MEMBER_ENUM_E4]]{{$}} - - - - -namespace testClassTemplateDecl { - template struct TestClassTemplateWithUnscopedMemberEnum { - enum E1 : T { E1_A, E1_B, E1_C, E1_D }; - enum E2 : int { E2_A, E2_B, E2_C, E2_D }; - enum E3 : T; - enum E4 : int; - }; - - template struct TestClassTemplateWithUnscopedMemberEnum; - - TestClassTemplateWithUnscopedMemberEnum TestClassTemplateWithUnscopedMemberEnumObject; -} - -// CHECK: ClassTemplateDecl 0x{{.+}} <{{.+}}:[[@LINE-12]]:3, line:[[@LINE-7]]:3> line:[[@LINE-12]]:31 TestClassTemplateWithUnscopedMemberEnum -// CHECK-NEXT: |-TemplateTypeParmDecl 0x{{.+}} col:21 referenced typename depth 0 index 0 T -// CHECK-NEXT: |-CXXRecordDecl 0x{{.+}} line:[[@LINE-14]]:31 struct TestClassTemplateWithUnscopedMemberEnum definition -// CHECK: | |-EnumDecl 0x[[#%x,UNSCOPED_MEMBER_ENUM_E1:]] col:10 E1 'T' -// CHECK-NEXT: | | |-EnumConstantDecl 0x{{.+}} col:19 E1_A 'testClassTemplateDecl::TestClassTemplateWithUnscopedMemberEnum::E1' -// CHECK-NEXT: | | |-EnumConstantDecl 0x{{.+}} col:25 E1_B 'testClassTemplateDecl::TestClassTemplateWithUnscopedMemberEnum::E1' -// CHECK-NEXT: | | |-EnumConstantDecl 0x{{.+}} col:31 E1_C 'testClassTemplateDecl::TestClassTemplateWithUnscopedMemberEnum::E1' -// CHECK-NEXT: | | `-EnumConstantDecl 0x{{.+}} col:37 E1_D 'testClassTemplateDecl::TestClassTemplateWithUnscopedMemberEnum::E1' -// CHECK-NEXT: | |-EnumDecl 0x[[#%x,UNSCOPED_MEMBER_ENUM_E2:]] col:10 E2 'int' -// CHECK-NEXT: | | |-EnumConstantDecl 0x{{.+}} col:21 E2_A 'testClassTemplateDecl::TestClassTemplateWithUnscopedMemberEnum::E2' -// CHECK-NEXT: | | |-EnumConstantDecl 0x{{.+}} col:27 E2_B 'testClassTemplateDecl::TestClassTemplateWithUnscopedMemberEnum::E2' -// CHECK-NEXT: | | |-EnumConstantDecl 0x{{.+}} col:33 E2_C 'testClassTemplateDecl::TestClassTemplateWithUnscopedMemberEnum::E2' -// CHECK-NEXT: | | `-EnumConstantDecl 0x{{.+}} col:39 E2_D 'testClassTemplateDecl::TestClassTemplateWithUnscopedMemberEnum::E2' -// CHECK-NEXT: | |-EnumDecl 0x[[#%x,UNSCOPED_MEMBER_ENUM_E3:]] col:10 E3 'T' -// CHECK-NEXT: | `-EnumDecl 0x[[#%x,UNSCOPED_MEMBER_ENUM_E4:]] col:10 E4 'int' -// CHECK-NEXT: `-ClassTemplateSpecialization {{.+}} 'TestClassTemplateWithUnscopedMemberEnum' - -// CHECK: ClassTemplateSpecializationDecl 0x{{.+}} <{{.+}}:[[@LINE-22]]:3, col:67> col:19 struct TestClassTemplateWithUnscopedMemberEnum definition explicit_instantiation_definition -// CHECK: |-TemplateArgument type 'unsigned int' -// CHECK-NEXT: | `-BuiltinType 0x{{.+}} 'unsigned int' -// CHECK: |-EnumDecl 0x{{.+}} col:10 E1 'unsigned int' instantiated_from 0x[[#UNSCOPED_MEMBER_ENUM_E1]]{{$}} -// CHECK-NEXT: | |-EnumConstantDecl 0x{{.+}} col:19 E1_A 'testClassTemplateDecl::TestClassTemplateWithUnscopedMemberEnum::E1' -// CHECK-NEXT: | |-EnumConstantDecl 0x{{.+}} col:25 E1_B 'testClassTemplateDecl::TestClassTemplateWithUnscopedMemberEnum::E1' -// CHECK-NEXT: | |-EnumConstantDecl 0x{{.+}} col:31 E1_C 'testClassTemplateDecl::TestClassTemplateWithUnscopedMemberEnum::E1' -// CHECK-NEXT: | `-EnumConstantDecl 0x{{.+}} col:37 E1_D 'testClassTemplateDecl::TestClassTemplateWithUnscopedMemberEnum::E1' -// CHECK-NEXT: |-EnumDecl 0x{{.+}} col:10 E2 'int' instantiated_from 0x[[#UNSCOPED_MEMBER_ENUM_E2]]{{$}} -// CHECK-NEXT: | |-EnumConstantDecl 0x{{.+}} col:21 E2_A 'testClassTemplateDecl::TestClassTemplateWithUnscopedMemberEnum::E2' -// CHECK-NEXT: | |-EnumConstantDecl 0x{{.+}} col:27 E2_B 'testClassTemplateDecl::TestClassTemplateWithUnscopedMemberEnum::E2' -// CHECK-NEXT: | |-EnumConstantDecl 0x{{.+}} col:33 E2_C 'testClassTemplateDecl::TestClassTemplateWithUnscopedMemberEnum::E2' -// CHECK-NEXT: | `-EnumConstantDecl 0x{{.+}} col:39 E2_D 'testClassTemplateDecl::TestClassTemplateWithUnscopedMemberEnum::E2' -// CHECK-NEXT: |-EnumDecl 0x{{.+}} col:10 E3 'unsigned int' instantiated_from 0x[[#UNSCOPED_MEMBER_ENUM_E3]]{{$}} -// CHECK-NEXT: |-EnumDecl 0x{{.+}} col:10 E4 'int' instantiated_from 0x[[#UNSCOPED_MEMBER_ENUM_E4]]{{$}} +// CHECK: |-TemplateTemplateParmDecl 0x{{.+}} col:37 depth 0 index 0 TT{{$}} +// CHECK: | |-TemplateTypeParmDecl 0x{{.+}} col:29 typename depth 1 index 0{{$}} +// CHECK: | `-TemplateArgument template 'TestClassTemplate':'testClassTemplateDecl::TestClassTemplate' qualified{{$}} +// CHECK: | |-inherited from TemplateTemplateParm 0x{{.+}} 'TT'{{$}} +// CHECK: | `-ClassTemplateDecl 0x{{.+}} line:{{.+}}:30 TestClassTemplate +// CHECK: `-CXXRecordDecl 0x{{.+}} prev 0x{{.+}} col:48 struct TestTemplateTemplateDefaultType definition{{$}} +// CHECK: |-DefinitionData empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init{{$}} +// CHECK: | |-DefaultConstructor exists trivial constexpr needs_implicit defaulted_is_constexpr{{$}} +// CHECK: | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} +// CHECK: | |-MoveConstructor exists simple trivial needs_implicit{{$}} +// CHECK: | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} +// CHECK: | |-MoveAssignment exists simple trivial needs_implicit{{$}} +// CHECK: | `-Destructor simple irrelevant trivial needs_implicit{{$}} +// CHECK: `-CXXRecordDecl 0x{{.+}} col:48 implicit struct TestTemplateTemplateDefaultType{{$}} // PR15220 dump instantiation only once @@ -600,20 +503,20 @@ namespace testCanonicalTemplate { template void TestFunctionTemplate(T); void bar(A a) { TestFunctionTemplate(a); } // CHECK: FunctionTemplateDecl 0x{{.+}} <{{.+}}:[[@LINE-3]]:3, col:51> col:29 TestFunctionTemplate{{$}} - // CHECK-NEXT: |-TemplateTypeParmDecl 0x{{.+}} col:21 referenced typename depth 0 index 0 T{{$}} - // CHECK-NEXT: |-FunctionDecl 0x{{.*}} col:29 TestFunctionTemplate 'void (T)'{{$}} - // CHECK-NEXT: | `-ParmVarDecl 0x{{.*}} col:51 'T'{{$}} - // CHECK-NEXT: `-FunctionDecl 0x{{.*}} col:29 used TestFunctionTemplate 'void (testCanonicalTemplate::A)' implicit_instantiation{{$}} - // CHECK-NEXT: |-TemplateArgument type 'testCanonicalTemplate::A'{{$}} - // CHECK-NEXT: | `-RecordType 0x{{.+}} 'testCanonicalTemplate::A'{{$}} - // CHECK-NEXT: | `-CXXRecord 0x{{.+}} 'A'{{$}} - // CHECK-NEXT: `-ParmVarDecl 0x{{.*}} col:51 'testCanonicalTemplate::A'{{$}} + // CHECK: |-TemplateTypeParmDecl 0x{{.+}} col:21 referenced typename depth 0 index 0 T{{$}} + // CHECK: |-FunctionDecl 0x{{.*}} col:29 TestFunctionTemplate 'void (T)'{{$}} + // CHECK: | `-ParmVarDecl 0x{{.*}} col:51 'T'{{$}} + // CHECK: `-FunctionDecl 0x{{.*}} col:29 used TestFunctionTemplate 'void (testCanonicalTemplate::A)' implicit_instantiation{{$}} + // CHECK: |-TemplateArgument type 'testCanonicalTemplate::A'{{$}} + // CHECK: | `-typeDetails: RecordType 0x{{.+}} 'testCanonicalTemplate::A'{{$}} + // CHECK: | `-CXXRecord 0x{{.+}} 'A'{{$}} + // CHECK: `-ParmVarDecl 0x{{.*}} col:51 'testCanonicalTemplate::A'{{$}} // CHECK: FunctionTemplateDecl 0x{{.+}} prev 0x{{.+}} <{{.+}}:[[@LINE-12]]:3, col:51> col:29 TestFunctionTemplate{{$}} - // CHECK-NEXT: |-TemplateTypeParmDecl 0x{{.+}} col:21 referenced typename depth 0 index 0 T{{$}} - // CHECK-NEXT: |-FunctionDecl{{.*}} 0x{{.+}} prev 0x{{.+}} col:29 TestFunctionTemplate 'void (T)'{{$}} - // CHECK-NEXT: | `-ParmVarDecl 0x{{.+}} col:51 'T'{{$}} - // CHECK-NEXT: `-Function 0x{{.+}} 'TestFunctionTemplate' 'void (testCanonicalTemplate::A)'{{$}} + // CHECK: |-TemplateTypeParmDecl 0x{{.+}} col:21 referenced typename depth 0 index 0 T{{$}} + // CHECK: |-FunctionDecl{{.*}} 0x{{.+}} prev 0x{{.+}} col:29 TestFunctionTemplate 'void (T)'{{$}} + // CHECK: | `-ParmVarDecl 0x{{.+}} col:51 'T'{{$}} + // CHECK: `-Function 0x{{.+}} 'TestFunctionTemplate' 'void (testCanonicalTemplate::A)'{{$}} // CHECK-NOT: TemplateArgument{{$}} template class TestClassTemplate { @@ -621,43 +524,43 @@ namespace testCanonicalTemplate { }; TestClassTemplate a; // CHECK: ClassTemplateDecl 0x{{.+}} <{{.+}}:[[@LINE-4]]:3, line:[[@LINE-2]]:3> line:[[@LINE-4]]:31 TestClassTemplate{{$}} - // CHECK-NEXT: |-TemplateTypeParmDecl 0x{{.+}} col:21 typename depth 0 index 0 T1{{$}} - // CHECK-NEXT: |-CXXRecordDecl 0x{{.+}} line:[[@LINE-6]]:31 class TestClassTemplate definition{{$}} - // CHECK-NEXT: | |-DefinitionData empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init{{$}} - // CHECK-NEXT: | | |-DefaultConstructor exists trivial constexpr needs_implicit defaulted_is_constexpr{{$}} - // CHECK-NEXT: | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} - // CHECK-NEXT: | | |-MoveConstructor exists simple trivial needs_implicit{{$}} - // CHECK-NEXT: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} - // CHECK-NEXT: | | |-MoveAssignment exists simple trivial needs_implicit{{$}} - // CHECK-NEXT: | | `-Destructor simple irrelevant trivial needs_implicit{{$}} - // CHECK-NEXT: | |-CXXRecordDecl 0x{{.+}} col:31 implicit class TestClassTemplate{{$}} - // CHECK-NEXT: | `-FriendDecl 0x{{.+}} col:40{{$}} - // CHECK-NEXT: | `-ClassTemplateDecl 0x{{.+}} parent 0x{{.+}} col:40 friend_undeclared TestClassTemplate{{$}} - // CHECK-NEXT: | |-TemplateTypeParmDecl 0x{{.+}} col:23 typename depth 1 index 0 T2{{$}} - // CHECK-NEXT: | `-CXXRecordDecl 0x{{.+}} parent 0x{{.+}} col:40 class TestClassTemplate{{$}} - // CHECK-NEXT: `-ClassTemplateSpecializationDecl 0x{{.+}} line:[[@LINE-19]]:31 class TestClassTemplate definition implicit_instantiation{{$}} - // CHECK-NEXT: |-DefinitionData pass_in_registers empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init{{$}} - // CHECK-NEXT: | |-DefaultConstructor exists trivial constexpr defaulted_is_constexpr{{$}} - // CHECK-NEXT: | |-CopyConstructor simple trivial has_const_param implicit_has_const_param{{$}} - // CHECK-NEXT: | |-MoveConstructor exists simple trivial{{$}} - // CHECK-NEXT: | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} - // CHECK-NEXT: | |-MoveAssignment exists simple trivial needs_implicit{{$}} - // CHECK-NEXT: | `-Destructor simple irrelevant trivial needs_implicit{{$}} - // CHECK-NEXT: |-TemplateArgument type 'testCanonicalTemplate::A'{{$}} - // CHECK-NEXT: | `-RecordType 0x{{.+}} 'testCanonicalTemplate::A'{{$}} - // CHECK-NEXT: | `-CXXRecord 0x{{.+}} 'A'{{$}} - // CHECK-NEXT: |-CXXRecordDecl 0x{{.+}} col:31 implicit class TestClassTemplate{{$}} - // CHECK-NEXT: |-FriendDecl 0x{{.+}} col:40{{$}} - // CHECK-NEXT: | `-ClassTemplateDecl 0x{{.+}} parent 0x{{.+}} prev 0x{{.+}} col:40 friend TestClassTemplate{{$}} - // CHECK-NEXT: | |-TemplateTypeParmDecl 0x{{.+}} col:23 typename depth 0 index 0 T2{{$}} - // CHECK-NEXT: | |-CXXRecordDecl 0x{{.+}} parent 0x{{.+}} prev 0x{{.+}} col:40 class TestClassTemplate{{$}} - // CHECK-NEXT: | `-ClassTemplateSpecialization 0x{{.+}} 'TestClassTemplate'{{$}} - // CHECK-NEXT: |-CXXConstructorDecl 0x{{.+}} col:31 implicit used constexpr TestClassTemplate 'void () noexcept' inline default trivial{{$}} - // CHECK-NEXT: | `-CompoundStmt 0x{{.+}} {{$}} - // CHECK-NEXT: |-CXXConstructorDecl 0x{{.+}} col:31 implicit constexpr TestClassTemplate 'void (const TestClassTemplate &)' inline default trivial noexcept-unevaluated 0x{{.+}}{{$}} - // CHECK-NEXT: | `-ParmVarDecl 0x{{.+}} col:31 'const TestClassTemplate &'{{$}} - // CHECK-NEXT: `-CXXConstructorDecl 0x{{.+}} col:31 implicit constexpr TestClassTemplate 'void (TestClassTemplate &&)' inline default trivial noexcept-unevaluated 0x{{.+}}{{$}} - // CHECK-NEXT: `-ParmVarDecl 0x{{.+}} col:31 'TestClassTemplate &&'{{$}} + // CHECK: |-TemplateTypeParmDecl 0x{{.+}} col:21 typename depth 0 index 0 T1{{$}} + // CHECK: |-CXXRecordDecl 0x{{.+}} line:[[@LINE-6]]:31 class TestClassTemplate definition{{$}} + // CHECK: | |-DefinitionData empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init{{$}} + // CHECK: | | |-DefaultConstructor exists trivial constexpr needs_implicit defaulted_is_constexpr{{$}} + // CHECK: | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} + // CHECK: | | |-MoveConstructor exists simple trivial needs_implicit{{$}} + // CHECK: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} + // CHECK: | | |-MoveAssignment exists simple trivial needs_implicit{{$}} + // CHECK: | | `-Destructor simple irrelevant trivial needs_implicit{{$}} + // CHECK: | |-CXXRecordDecl 0x{{.+}} col:31 implicit class TestClassTemplate{{$}} + // CHECK: | `-FriendDecl 0x{{.+}} col:40{{$}} + // CHECK: | `-ClassTemplateDecl 0x{{.+}} parent 0x{{.+}} col:40 friend_undeclared TestClassTemplate{{$}} + // CHECK: | |-TemplateTypeParmDecl 0x{{.+}} col:23 typename depth 1 index 0 T2{{$}} + // CHECK: | `-CXXRecordDecl 0x{{.+}} parent 0x{{.+}} col:40 class TestClassTemplate{{$}} + // CHECK: `-ClassTemplateSpecializationDecl 0x{{.+}} line:[[@LINE-19]]:31 class TestClassTemplate definition implicit_instantiation{{$}} + // CHECK: |-DefinitionData pass_in_registers empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init{{$}} + // CHECK: | |-DefaultConstructor exists trivial constexpr defaulted_is_constexpr{{$}} + // CHECK: | |-CopyConstructor simple trivial has_const_param implicit_has_const_param{{$}} + // CHECK: | |-MoveConstructor exists simple trivial{{$}} + // CHECK: | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} + // CHECK: | |-MoveAssignment exists simple trivial needs_implicit{{$}} + // CHECK: | `-Destructor simple irrelevant trivial needs_implicit{{$}} + // CHECK: |-TemplateArgument type 'testCanonicalTemplate::A'{{$}} + // CHECK: | `-typeDetails: RecordType 0x{{.+}} 'testCanonicalTemplate::A'{{$}} + // CHECK: | `-CXXRecord 0x{{.+}} 'A'{{$}} + // CHECK: |-CXXRecordDecl 0x{{.+}} col:31 implicit class TestClassTemplate{{$}} + // CHECK: |-FriendDecl 0x{{.+}} col:40{{$}} + // CHECK: | `-ClassTemplateDecl 0x{{.+}} parent 0x{{.+}} prev 0x{{.+}} col:40 friend TestClassTemplate{{$}} + // CHECK: | |-TemplateTypeParmDecl 0x{{.+}} col:23 typename depth 0 index 0 T2{{$}} + // CHECK: | |-CXXRecordDecl 0x{{.+}} parent 0x{{.+}} prev 0x{{.+}} col:40 class TestClassTemplate{{$}} + // CHECK: | `-ClassTemplateSpecialization 0x{{.+}} 'TestClassTemplate'{{$}} + // CHECK: |-CXXConstructorDecl 0x{{.+}} col:31 implicit used constexpr TestClassTemplate 'void () noexcept' inline default trivial{{$}} + // CHECK: | `-CompoundStmt 0x{{.+}} {{$}} + // CHECK: |-CXXConstructorDecl 0x{{.+}} implicit constexpr TestClassTemplate 'void (const TestClassTemplate &)' inline default trivial noexcept-unevaluated 0x{{.+}}{{$}} + // CHECK: | `-ParmVarDecl 0x{{.+}} 'const TestClassTemplate &' + // CHECK: CXXConstructorDecl {{.*}} + // CHECK: ParmVarDecl 0x{{.+}} template class TestClassTemplate2; @@ -665,45 +568,54 @@ namespace testCanonicalTemplate { template class TestClassTemplate2 { }; TestClassTemplate2 a2; - // CHECK: ClassTemplateDecl 0x{{.+}} <{{.+}}:[[@LINE-5]]:3, col:31> col:31 TestClassTemplate2{{$}} - // CHECK-NEXT: |-TemplateTypeParmDecl 0x{{.+}} col:21 typename depth 0 index 0 T1{{$}} - // CHECK-NEXT: |-CXXRecordDecl 0x{{.+}} col:31 class TestClassTemplate2{{$}} - // CHECK-NEXT: `-ClassTemplateSpecializationDecl 0x{{.+}} line:[[@LINE-6]]:31 class TestClassTemplate2 definition implicit_instantiation{{$}} - // CHECK-NEXT: |-DefinitionData pass_in_registers empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init{{$}} - // CHECK-NEXT: | |-DefaultConstructor exists trivial constexpr defaulted_is_constexpr{{$}} - // CHECK-NEXT: | |-CopyConstructor simple trivial has_const_param implicit_has_const_param{{$}} - // CHECK-NEXT: | |-MoveConstructor exists simple trivial{{$}} - // CHECK-NEXT: | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} - // CHECK-NEXT: | |-MoveAssignment exists simple trivial needs_implicit{{$}} - // CHECK-NEXT: | `-Destructor simple irrelevant trivial needs_implicit{{$}} - // CHECK-NEXT: |-TemplateArgument type 'testCanonicalTemplate::A'{{$}} - // CHECK-NEXT: | `-RecordType 0x{{.+}} 'testCanonicalTemplate::A'{{$}} - // CHECK-NEXT: | `-CXXRecord 0x{{.+}} 'A'{{$}} - // CHECK-NEXT: |-CXXRecordDecl 0x{{.+}} col:31 implicit class TestClassTemplate2{{$}} - // CHECK-NEXT: |-CXXConstructorDecl 0x{{.+}} col:31 implicit used constexpr TestClassTemplate2 'void () noexcept' inline default trivial{{$}} - // CHECK-NEXT: | `-CompoundStmt 0x{{.+}} {{$}} - // CHECK-NEXT: |-CXXConstructorDecl 0x{{.+}} col:31 implicit constexpr TestClassTemplate2 'void (const TestClassTemplate2 &)' inline default trivial noexcept-unevaluated 0x{{.+}}{{$}} - // CHECK-NEXT: | `-ParmVarDecl 0x{{.+}} col:31 'const TestClassTemplate2 &'{{$}} - // CHECK-NEXT: `-CXXConstructorDecl 0x{{.+}} col:31 implicit constexpr TestClassTemplate2 'void (TestClassTemplate2 &&)' inline default trivial noexcept-unevaluated 0x{{.+}}{{$}} - // CHECK-NEXT: `-ParmVarDecl 0x{{.+}} col:31 'TestClassTemplate2 &&'{{$}} - - // CHECK: ClassTemplateDecl 0x{{.+}} prev 0x{{.+}} <{{.+}}:[[@LINE-26]]:3, col:31> col:31 TestClassTemplate2{{$}} - // CHECK-NEXT: |-TemplateTypeParmDecl 0x{{.+}} col:21 typename depth 0 index 0 T1{{$}} - // CHECK-NEXT: |-CXXRecordDecl 0x{{.+}} prev 0x{{.+}} col:31 class TestClassTemplate2{{$}} - // CHECK-NEXT: `-ClassTemplateSpecialization 0x{{.+}} 'TestClassTemplate2'{{$}} - - // CHECK: ClassTemplateDecl 0x{{.+}} prev 0x{{.+}} <{{.+}}:[[@LINE-30]]:3, line:[[@LINE-29]]:3> line:[[@LINE-30]]:31 TestClassTemplate2{{$}} - // CHECK-NEXT: |-TemplateTypeParmDecl 0x{{.+}} col:21 typename depth 0 index 0 T1{{$}} - // CHECK-NEXT: |-CXXRecordDecl 0x{{.+}} prev 0x{{.+}} line:[[@LINE-32]]:31 class TestClassTemplate2 definition{{$}} - // CHECK-NEXT: | |-DefinitionData empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init{{$}} - // CHECK-NEXT: | | |-DefaultConstructor exists trivial constexpr needs_implicit defaulted_is_constexpr{{$}} - // CHECK-NEXT: | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} - // CHECK-NEXT: | | |-MoveConstructor exists simple trivial needs_implicit{{$}} - // CHECK-NEXT: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param{{$}} - // CHECK-NEXT: | | |-MoveAssignment exists simple trivial needs_implicit{{$}} - // CHECK-NEXT: | | `-Destructor simple irrelevant trivial needs_implicit{{$}} - // CHECK-NEXT: | `-CXXRecordDecl 0x{{.+}} col:31 implicit class TestClassTemplate2{{$}} - // CHECK-NEXT: `-ClassTemplateSpecialization 0x{{.+}} 'TestClassTemplate2'{{$}} + + +//CHECK: ClassTemplateDecl {{.*}} TestClassTemplate2 +//CHECK: |-TemplateTypeParmDecl {{.*}} typename depth 0 index 0 T1 +//CHECK: |-CXXRecordDecl {{.*}} class TestClassTemplate2 +//CHECK: `-ClassTemplateSpecializationDecl {{.*}} class TestClassTemplate2 definition implicit_instantiation +//CHECK: |-DefinitionData pass_in_registers empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init +//CHECK: | |-DefaultConstructor exists trivial constexpr defaulted_is_constexpr +//CHECK: | |-CopyConstructor simple trivial has_const_param implicit_has_const_param +//CHECK: | |-MoveConstructor exists simple trivial +//CHECK: | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +//CHECK: | |-MoveAssignment exists simple trivial needs_implicit +//CHECK: | `-Destructor simple irrelevant trivial needs_implicit +//CHECK: |-TemplateArgument type 'testCanonicalTemplate::A' +//CHECK: | `-typeDetails: RecordType {{.*}} 'testCanonicalTemplate::A' +//CHECK: | `-CXXRecord {{.*}} 'A' +//CHECK: |-CXXRecordDecl {{.*}} implicit class TestClassTemplate2 +//CHECK: |-CXXConstructorDecl {{.*}} implicit used constexpr TestClassTemplate2 'void () noexcept' inline default trivial +//CHECK: | `-CompoundStmt {{.*}} +//CHECK: |-CXXConstructorDecl {{.*}} implicit constexpr TestClassTemplate2 'void (const TestClassTemplate2 &)' inline default trivial noexcept-unevaluated {{.*}} +//CHECK: | `-ParmVarDecl {{.*}} 'const TestClassTemplate2 &' +//CHECK: | `-typeDetails: LValueReferenceType {{.*}} 'const TestClassTemplate2 &' +//CHECK: | `-qualTypeDetail: QualType {{.*}} 'const TestClassTemplate2' const +//CHECK: | `-typeDetails: ElaboratedType {{.*}} 'TestClassTemplate2' sugar +//CHECK: | `-typeDetails: RecordType {{.*}} 'testCanonicalTemplate::TestClassTemplate2' +//CHECK: | `-ClassTemplateSpecialization {{.*}} 'TestClassTemplate2' +//CHECK: `-CXXConstructorDecl {{.*}} implicit constexpr TestClassTemplate2 'void (TestClassTemplate2 &&)' inline default trivial noexcept-unevaluated {{.*}} +//CHECK: `-ParmVarDecl {{.*}} 'TestClassTemplate2 &&' +//CHECK: `-typeDetails: RValueReferenceType {{.*}} 'TestClassTemplate2 &&' +//CHECK: `-typeDetails: ElaboratedType {{.*}} 'TestClassTemplate2' sugar +//CHECK: `-typeDetails: RecordType {{.*}} 'testCanonicalTemplate::TestClassTemplate2' +//CHECK: `-ClassTemplateSpecialization {{.*}} 'TestClassTemplate2' +//CHECK: ClassTemplateDecl {{.*}} prev {{.*}} TestClassTemplate2 +//CHECK: |-TemplateTypeParmDecl {{.*}} typename depth 0 index 0 T1 +//CHECK: |-CXXRecordDecl {{.*}} prev {{.*}} class TestClassTemplate2 +//CHECK: `-ClassTemplateSpecialization {{.*}} 'TestClassTemplate2' +//CHECK: ClassTemplateDecl {{.*}} prev {{.*}} TestClassTemplate2 +//CHECK: |-TemplateTypeParmDecl {{.*}} typename depth 0 index 0 T1 +//CHECK: |-CXXRecordDecl {{.*}} prev {{.*}} class TestClassTemplate2 definition +//CHECK: | |-DefinitionData empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init +//CHECK: | | |-DefaultConstructor exists trivial constexpr needs_implicit defaulted_is_constexpr +//CHECK: | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +//CHECK: | | |-MoveConstructor exists simple trivial needs_implicit +//CHECK: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +//CHECK: | | |-MoveAssignment exists simple trivial needs_implicit +//CHECK: | | `-Destructor simple irrelevant trivial needs_implicit +//CHECK: | `-CXXRecordDecl {{.*}} implicit class TestClassTemplate2 +//CHECK: `-ClassTemplateSpecialization {{.*}} 'TestClassTemplate2' struct S { template static const T TestVarTemplate; // declaration of a static data member template @@ -717,34 +629,51 @@ namespace testCanonicalTemplate { int j = S::TestVarTemplate; } - // CHECK: VarTemplateDecl 0x{{.+}} <{{.+}}:[[@LINE-11]]:7, col:43> col:43 TestVarTemplate{{$}} - // CHECK-NEXT: |-TemplateTypeParmDecl 0x{{.+}} col:25 referenced typename depth 0 index 0 T{{$}} - // CHECK-NEXT: |-VarDecl 0x{{.+}} col:43 TestVarTemplate 'const T' static{{$}} - // CHECK-NEXT: |-VarTemplateSpecializationDecl 0x{{.+}} parent 0x{{.+}} prev 0x{{.+}} col:14 referenced TestVarTemplate 'const int' implicit_instantiation cinit{{$}} - // CHECK-NEXT: | |-NestedNameSpecifier TypeSpec 'testCanonicalTemplate::S'{{$}} - // CHECK-NEXT: | |-TemplateArgument type 'int'{{$}} - // CHECK-NEXT: | | `-BuiltinType 0x{{.+}} 'int'{{$}} - // CHECK-NEXT: | `-InitListExpr 0x{{.+}} 'int'{{$}} - // CHECK-NEXT: `-VarTemplateSpecializationDecl 0x{{.+}} col:43 referenced TestVarTemplate 'const int' implicit_instantiation static{{$}} - // CHECK-NEXT: `-TemplateArgument type 'int'{{$}} - - // CHECK: VarTemplateSpecializationDecl 0x{{.+}} <{{.+}}:[[@LINE-22]]:7, col:43> col:43 referenced TestVarTemplate 'const int' implicit_instantiation static{{$}} - // CHECK-NEXT:`-TemplateArgument type 'int'{{$}} - // CHECK-NEXT: `-BuiltinType 0x{{.+}} 'int'{{$}} - - // CHECK: VarTemplateDecl 0x{{.+}} parent 0x{{.+}} prev 0x{{.+}} <{{.+}}:[[@LINE-24]]:3, line:[[@LINE-23]]:34> col:14 TestVarTemplate{{$}} - // CHECK-NEXT: |-TemplateTypeParmDecl 0x{{.+}} col:21 referenced typename depth 0 index 0 T{{$}} - // CHECK-NEXT: |-VarDecl 0x{{.+}} parent 0x{{.+}} prev 0x{{.+}} col:14 TestVarTemplate 'const T' cinit{{$}} - // CHECK-NEXT: | |-NestedNameSpecifier TypeSpec 'testCanonicalTemplate::S'{{$}} - // CHECK-NEXT: | `-InitListExpr 0x{{.+}} 'void'{{$}} - // CHECK-NEXT: |-VarTemplateSpecialization 0x{{.+}} 'TestVarTemplate' 'const int'{{$}} - // CHECK-NEXT: `-VarTemplateSpecialization 0x{{.+}} 'TestVarTemplate' 'const int'{{$}} - - // CHECK: VarTemplateSpecializationDecl 0x{{.+}} parent 0x{{.+}} prev 0x{{.+}} <{{.+}}:[[@LINE-32]]:3, line:[[@LINE-31]]:34> col:14 referenced TestVarTemplate 'const int' implicit_instantiation cinit{{$}} - // CHECK-NEXT: |-NestedNameSpecifier TypeSpec 'testCanonicalTemplate::S'{{$}} - // CHECK-NEXT: |-TemplateArgument type 'int'{{$}} - // CHECK-NEXT: | `-BuiltinType 0x{{.+}} 'int'{{$}} - // CHECK-NEXT: `-InitListExpr 0x{{.+}} 'int'{{$}} + // CHECK: VarTemplateDecl 0x{{.+}} <{{.+}}> col:43 TestVarTemplate + // CHECK: |-TemplateTypeParmDecl 0x{{.+}} <{{.+}}> col:25 referenced typename depth 0 index 0 T + // CHECK: |-VarDecl 0x{{.+}} <{{.+}}> col:43 TestVarTemplate 'const T' static + // CHECK: | `-qualTypeDetail: QualType 0x{{.+}} 'const T' const + // CHECK: | `-typeDetails: TemplateTypeParmType 0x{{.+}} 'T' dependent depth 0 index 0 + // CHECK: | `-TemplateTypeParm 0x{{.+}} 'T' + // CHECK: | |-NestedNameSpecifier TypeSpec 'testCanonicalTemplate::S' + // CHECK: | |-TemplateArgument type 'int' + // CHECK: | | `-typeDetails: BuiltinType 0x{{.+}} 'int' + // CHECK: | |-InitListExpr 0x{{.+}} <{{.+}}> 'int' + // CHECK: | `-qualTypeDetail: QualType 0x{{.+}} 'const int' const + // CHECK: | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'int' sugar typename depth 0 index 0 T + // CHECK: | `-typeDetails: BuiltinType 0x{{.+}} 'int' + // CHECK: `-VarTemplateSpecializationDecl 0x{{.+}} <{{.+}}> col:43 referenced TestVarTemplate 'const int' implicit_instantiation static + // CHECK: |-TemplateArgument type 'int' + // CHECK: | `-typeDetails: BuiltinType 0x{{.+}} 'int' + // CHECK: `-qualTypeDetail: QualType 0x{{.+}} 'const int' const + // CHECK: `-typeDetails: SubstTemplateTypeParmType 0x{{.+}} 'int' sugar typename depth 0 index 0 T + // CHECK: |-VarTemplate 0x{{.+}} 'TestVarTemplate' + // CHECK: `-typeDetails: BuiltinType 0x{{.+}} 'int' + // CHECK: VarTemplateSpecializationDecl 0x{{.+}} <{{.+}}> col:43 referenced TestVarTemplate 'const int' implicit_instantiation static + // CHECK: |-TemplateArgument type 'int' + // CHECK: | `-typeDetails: BuiltinType 0x{{.+}} 'int' + // CHECK: `-qualTypeDetail: QualType 0x{{.+}} 'const int' const + // CHECK: `-typeDetails: SubstTemplateTypeParmType 0x{{.+}} 'int' sugar typename depth 0 index 0 T + // CHECK: |-VarTemplate 0x{{.+}} 'TestVarTemplate' + // CHECK: `-typeDetails: BuiltinType 0x{{.+}} 'int' + // CHECK: VarTemplateDecl 0x{{.+}} parent 0x{{.+}} prev 0x{{.+}} <{{.+}}> col:14 TestVarTemplate + // CHECK: |-TemplateTypeParmDecl 0x{{.+}} <{{.+}}> col:21 referenced typename depth 0 index 0 T + // CHECK: |-VarDecl 0x{{.+}} parent 0x{{.+}} prev 0x{{.+}} <{{.+}}> col:14 TestVarTemplate 'const T' cinit + // CHECK: | |-NestedNameSpecifier TypeSpec 'testCanonicalTemplate::S' + // CHECK: | |-InitListExpr 0x{{.+}} <{{.+}}> 'void' + // CHECK: | `-qualTypeDetail: QualType 0x{{.+}} 'const T' const + // CHECK: | `-typeDetails: TemplateTypeParmType 0x{{.+}} 'T' dependent depth 0 index 0 + // CHECK: | `-TemplateTypeParm 0x{{.+}} 'T' + // CHECK: |-VarTemplateSpecialization 0x{{.+}} 'TestVarTemplate' 'const int' + // CHECK: `-VarTemplateSpecialization 0x{{.+}} 'TestVarTemplate' 'const int' + // CHECK: VarTemplateSpecializationDecl 0x{{.+}} parent 0x{{.+}} prev 0x{{.+}} <{{.+}}> col:14 referenced TestVarTemplate 'const int' implicit_instantiation cinit + // CHECK: |-NestedNameSpecifier TypeSpec 'testCanonicalTemplate::S' + // CHECK: |-TemplateArgument type 'int' + // CHECK: | `-typeDetails: BuiltinType 0x{{.+}} 'int' + // CHECK: |-InitListExpr 0x{{.+}} <{{.+}}> 'int' + // CHECK: `-qualTypeDetail: QualType 0x{{.+}} 'const int' const + // CHECK: `-typeDetails: SubstTemplateTypeParmType 0x{{.+}} 'int' sugar typename depth 0 index 0 T + // CHECK: `-typeDetails: BuiltinType 0x{{.+}} 'int' } template @@ -753,34 +682,34 @@ class TestClassScopeFunctionSpecialization { template<> void foo(int a) { } }; // CHECK: FunctionTemplateDecl{{.*}} foo -// CHECK-NEXT: TemplateTypeParmDecl{{.*}} referenced class depth 1 index 0 U -// CHECK-NEXT: CXXMethodDecl{{.*}} foo 'void (U)' implicit-inline -// CHECK-NEXT: ParmVarDecl -// CHECK-NEXT: CompoundStmt -// CHECK-NEXT: CXXMethodDecl{{.*}} foo 'void (int)' explicit_specialization implicit-inline -// CHECK-NEXT: TemplateArgument{{.*}} 'int' -// CHECK-NEXT: BuiltinType{{.*}} 'int' -// CHECK-NEXT: ParmVarDecl -// CHECK-NEXT: CompoundStmt +// CHECK: TemplateTypeParmDecl{{.*}} referenced class depth 1 index 0 U +// CHECK: CXXMethodDecl{{.*}} foo 'void (U)' implicit-inline +// CHECK: ParmVarDecl +// CHECK: CompoundStmt +// CHECK: CXXMethodDecl{{.*}} foo 'void (int)' explicit_specialization implicit-inline +// CHECK: TemplateArgument{{.*}} 'int' +// CHECK: BuiltinType{{.*}} 'int' +// CHECK: ParmVarDecl +// CHECK: CompoundStmt namespace TestTemplateTypeParmDecl { template void foo(); } // CHECK: NamespaceDecl{{.*}} TestTemplateTypeParmDecl -// CHECK-NEXT: FunctionTemplateDecl -// CHECK-NEXT: TemplateTypeParmDecl{{.*}} typename depth 0 index 0 ... T -// CHECK-NEXT: TemplateTypeParmDecl{{.*}} class depth 0 index 1 U -// CHECK-NEXT: TemplateArgument type 'int' +// CHECK: FunctionTemplateDecl +// CHECK: TemplateTypeParmDecl{{.*}} typename depth 0 index 0 ... T +// CHECK: TemplateTypeParmDecl{{.*}} class depth 0 index 1 U +// CHECK: TemplateArgument type 'int' namespace TestNonTypeTemplateParmDecl { template void foo(); } // CHECK: NamespaceDecl{{.*}} TestNonTypeTemplateParmDecl -// CHECK-NEXT: FunctionTemplateDecl -// CHECK-NEXT: NonTypeTemplateParmDecl{{.*}} 'int' depth 0 index 0 I -// CHECK-NEXT: TemplateArgument {{.*}} expr -// CHECK-NEXT: IntegerLiteral{{.*}} 'int' 1 -// CHECK-NEXT: NonTypeTemplateParmDecl{{.*}} 'int' depth 0 index 1 ... J +// CHECK: FunctionTemplateDecl +// CHECK: NonTypeTemplateParmDecl{{.*}} 'int' depth 0 index 0 I +// CHECK: TemplateArgument {{.*}} expr +// CHECK: IntegerLiteral{{.*}} 'int' 1 +// CHECK: NonTypeTemplateParmDecl{{.*}} 'int' depth 0 index 1 ... J namespace TestTemplateTemplateParmDecl { template class A; @@ -788,12 +717,12 @@ namespace TestTemplateTemplateParmDecl { } // CHECK: NamespaceDecl{{.*}} TestTemplateTemplateParmDecl // CHECK: FunctionTemplateDecl -// CHECK-NEXT: TemplateTemplateParmDecl{{.*}} T -// CHECK-NEXT: TemplateTypeParmDecl{{.*}} typename -// CHECK-NEXT: TemplateArgument{{.*}} template 'A':'TestTemplateTemplateParmDecl::A' qualified{{$}} -// CHECK-NEXT: ClassTemplateDecl {{.*}} A -// CHECK-NEXT: TemplateTemplateParmDecl{{.*}} ... U -// CHECK-NEXT: TemplateTypeParmDecl{{.*}} typename +// CHECK: TemplateTemplateParmDecl{{.*}} T +// CHECK: TemplateTypeParmDecl{{.*}} typename +// CHECK: TemplateArgument{{.*}} template 'A':'TestTemplateTemplateParmDecl::A' qualified{{$}} +// CHECK: ClassTemplateDecl {{.*}} A +// CHECK: TemplateTemplateParmDecl{{.*}} ... U +// CHECK: TemplateTypeParmDecl{{.*}} typename namespace TestTemplateArgument { template class A { }; @@ -809,7 +738,7 @@ namespace TestTemplateArgument { template class testDecl; // CHECK: ClassTemplateSpecializationDecl{{.*}} class testDecl // CHECK: TemplateArgument{{.*}} decl - // CHECK-NEXT: Function{{.*}}foo + // CHECK: Function{{.*}}foo template class testDecl; // CHECK: ClassTemplateSpecializationDecl{{.*}} class testDecl @@ -834,15 +763,15 @@ namespace TestTemplateArgument { template class testExpr { }; // CHECK: ClassTemplatePartialSpecializationDecl{{.*}} class testExpr // CHECK: TemplateArgument{{.*}} expr - // CHECK-NEXT: DeclRefExpr{{.*}}I + // CHECK: DeclRefExpr{{.*}}I template class testPack { }; template class testPack<0, 1, 2>; // CHECK: ClassTemplateSpecializationDecl{{.*}} class testPack // CHECK: TemplateArgument{{.*}} integral '0' - // CHECK-NEXT: TemplateArgument{{.*}} pack - // CHECK-NEXT: TemplateArgument{{.*}} integral '1' - // CHECK-NEXT: TemplateArgument{{.*}} integral '2' + // CHECK: TemplateArgument{{.*}} pack + // CHECK: TemplateArgument{{.*}} integral '1' + // CHECK: TemplateArgument{{.*}} integral '2' } namespace testUsingDecl { @@ -852,9 +781,9 @@ namespace TestUsingDecl { using testUsingDecl::i; } // CHECK: NamespaceDecl{{.*}} TestUsingDecl -// CHECK-NEXT: UsingDecl{{.*}} testUsingDecl::i -// CHECK-NEXT: | `-NestedNameSpecifier Namespace 0x{{.*}} 'testUsingDecl -// CHECK-NEXT: UsingShadowDecl{{.*}} Var{{.*}} 'i' 'int' +// CHECK: UsingDecl{{.*}} testUsingDecl::i +// CHECK: | `-NestedNameSpecifier Namespace 0x{{.*}} 'testUsingDecl +// CHECK: UsingShadowDecl{{.*}} Var{{.*}} 'i' 'int' namespace testUnresolvedUsing { class A { }; @@ -876,10 +805,10 @@ namespace TestLinkageSpecDecl { extern "C++" void test2(); } // CHECK: NamespaceDecl{{.*}} TestLinkageSpecDecl -// CHECK-NEXT: LinkageSpecDecl{{.*}} C -// CHECK-NEXT: FunctionDecl -// CHECK-NEXT: LinkageSpecDecl{{.*}} C++ -// CHECK-NEXT: FunctionDecl +// CHECK: LinkageSpecDecl{{.*}} C +// CHECK: FunctionDecl +// CHECK: LinkageSpecDecl{{.*}} C++ +// CHECK: FunctionDecl class TestAccessSpecDecl { public: @@ -888,9 +817,9 @@ class TestAccessSpecDecl { }; // CHECK: CXXRecordDecl{{.*}} class TestAccessSpecDecl // CHECK: CXXRecordDecl{{.*}} class TestAccessSpecDecl -// CHECK-NEXT: AccessSpecDecl{{.*}} public -// CHECK-NEXT: AccessSpecDecl{{.*}} private -// CHECK-NEXT: AccessSpecDecl{{.*}} protected +// CHECK: AccessSpecDecl{{.*}} public +// CHECK: AccessSpecDecl{{.*}} private +// CHECK: AccessSpecDecl{{.*}} protected template class TestFriendDecl { friend int foo(); @@ -899,18 +828,18 @@ template class TestFriendDecl { }; // CHECK: CXXRecord{{.*}} TestFriendDecl // CHECK: CXXRecord{{.*}} TestFriendDecl -// CHECK-NEXT: FriendDecl -// CHECK-NEXT: FunctionDecl{{.*}} foo -// CHECK-NEXT: FriendDecl{{.*}} 'class A':'A' -// CHECK-NEXT: CXXRecordDecl{{.*}} class A -// CHECK-NEXT: FriendDecl{{.*}} 'T' +// CHECK: FriendDecl +// CHECK: FunctionDecl{{.*}} foo +// CHECK: FriendDecl{{.*}} 'class A':'A' +// CHECK: CXXRecordDecl{{.*}} class A +// CHECK: FriendDecl{{.*}} 'T' namespace TestFileScopeAsmDecl { asm("ret"); } // CHECK: NamespaceDecl{{.*}} TestFileScopeAsmDecl{{$}} // CHECK: FileScopeAsmDecl{{.*> .*$}} -// CHECK-NEXT: StringLiteral +// CHECK: StringLiteral namespace TestFriendDecl2 { void f(); @@ -943,17 +872,23 @@ namespace Comment { namespace TestConstexprVariableTemplateWithInitializer { template constexpr T foo{}; - // CHECK: VarTemplateDecl 0x{{.+}} <{{.+}}:[[@LINE-1]]:3, col:40> col:36 foo{{$}} - // CHECK-NEXT: |-TemplateTypeParmDecl 0x{{.+}} col:21 referenced typename depth 0 index 0 T{{$}} - // CHECK-NEXT: `-VarDecl 0x{{.+}} col:36 foo 'const T' constexpr listinit{{$}} - // CHECK-NEXT: `-InitListExpr 0x{{.+}} 'void'{{$}} + // CHECK: |-VarTemplateDecl 0x{{.+}} <{{.+}}> col:36 foo + // CHECK-NEXT: | |-TemplateTypeParmDecl 0x{{.+}} <{{.+}}> col:21 referenced typename depth 0 index 0 T + // CHECK-NEXT: | `-VarDecl 0x{{.+}} <{{.+}}> col:36 foo 'const T' constexpr listinit + // CHECK-NEXT: | |-InitListExpr 0x{{.+}} <{{.+}}> 'void' + // CHECK-NEXT: | `-qualTypeDetail: QualType 0x{{.+}} 'const T' const + // CHECK-NEXT: | `-typeDetails: TemplateTypeParmType 0x{{.+}} 'T' dependent depth 0 index 0 + // CHECK-NEXT: | `-TemplateTypeParm 0x{{.+}} 'T' template constexpr int val{42}; - // CHECK: VarTemplateDecl 0x{{.+}} <{{.+}}:[[@LINE-1]]:3, col:44> col:38 val{{$}} - // CHECK-NEXT: |-TemplateTypeParmDecl 0x{{.+}} col:21 typename depth 0 index 0 T{{$}} - // CHECK-NEXT: `-VarDecl 0x{{.+}} col:38 val 'const int' constexpr listinit{{$}} - // CHECK-NEXT: |-value: Int 42{{$}} - // CHECK-NEXT: `-InitListExpr 0x{{.+}} 'int'{{$}} + // CHECK: |-VarTemplateDecl 0x{{.+}} <{{.+}}> col:38 val + // CHECK-NEXT: | |-TemplateTypeParmDecl 0x{{.+}} <{{.+}}> col:21 typename depth 0 index 0 T + // CHECK-NEXT: | `-VarDecl 0x{{.+}} <{{.+}}> col:38 val 'const int' constexpr listinit + // CHECK-NEXT: | |-value: Int 42 + // CHECK-NEXT: | |-InitListExpr 0x{{.+}} <{{.+}}> 'int' + // CHECK-NEXT: | | `-IntegerLiteral 0x{{.+}} <{{.+}}> 'int' 42 + // CHECK-NEXT: | `-qualTypeDetail: QualType 0x{{.+}} 'const int' const + // CHECK-NEXT: | `-typeDetails: BuiltinType 0x{{.+}} 'int' template struct in_place_type_t { @@ -962,16 +897,22 @@ namespace TestConstexprVariableTemplateWithInitializer { template inline constexpr in_place_type_t<_Tp> in_place_type{}; - // CHECK: -VarTemplateDecl 0x{{.+}} col:41 in_place_type{{$}} - // CHECK-NEXT: |-TemplateTypeParmDecl 0x{{.+}} col:22 referenced typename depth 0 index 0 _Tp{{$}} - // CHECK-NEXT: `-VarDecl 0x{{.+}} col:41 in_place_type 'const in_place_type_t<_Tp>' inline constexpr listinit{{$}} - // CHECK-NEXT: `-InitListExpr 0x{{.+}} 'void'{{$}} + // CHECK: |-VarTemplateDecl 0x{{.+}} <{{.+}}> col:41 in_place_type + // CHECK-NEXT: | |-TemplateTypeParmDecl 0x{{.+}} <{{.+}}> col:22 referenced typename depth 0 index 0 _Tp + // CHECK-NEXT: | `-VarDecl 0x{{.+}} <{{.+}}> col:41 in_place_type 'const in_place_type_t<{{.+}}>' inline constexpr listinit + // CHECK-NEXT: | |-InitListExpr 0x{{.+}} <{{.+}}> 'void' + // CHECK-NEXT: | `-qualTypeDetail: QualType 0x{{.+}} 'const in_place_type_t<{{.+}}>' const + // CHECK-NEXT: | `-typeDetails: ElaboratedType 0x{{.+}} 'in_place_type_t<{{.+}}>' sugar dependent + // CHECK-NEXT: | `-typeDetails: TemplateSpecializationType 0x{{.+}} 'in_place_type_t<{{.+}}>' dependent template constexpr T call_init(0); - // CHECK: -VarTemplateDecl 0x{{.+}} col:37 call_init{{$}} - // CHECK-NEXT: |-TemplateTypeParmDecl 0x{{.+}} col:22 referenced typename depth 0 index 0 T{{$}} - // CHECK-NEXT: `-VarDecl 0x{{.+}} col:37 call_init 'const T' constexpr callinit{{$}} - // CHECK-NEXT: `-ParenListExpr 0x{{.+}} 'NULL TYPE'{{$}} - // CHECK-NEXT: `-IntegerLiteral 0x{{.+}} 'int' 0{{$}} + // CHECK: `-VarTemplateDecl 0x{{.+}} <{{.+}}> col:37 call_init + // CHECK-NEXT: |-TemplateTypeParmDecl 0x{{.+}} <{{.+}}> col:22 referenced typename depth 0 index 0 T + // CHECK-NEXT: `-VarDecl 0x{{.+}} <{{.+}}> col:37 call_init 'const T' constexpr callinit + // CHECK-NEXT: |-ParenListExpr 0x{{.+}} <{{.+}}> 'NULL TYPE' + // CHECK-NEXT: | `-IntegerLiteral 0x{{.+}} <{{.+}}> 'int' 0 + // CHECK-NEXT: `-qualTypeDetail: QualType 0x{{.+}} 'const T' const + // CHECK-NEXT: `-typeDetails: TemplateTypeParmType 0x{{.+}} 'T' dependent depth 0 index 0 + // CHECK-NEXT: `-TemplateTypeParm 0x{{.+}} 'T' } diff --git a/clang/test/AST/ast-dump-decl.m b/clang/test/AST/ast-dump-decl.m index 5f09b6042f409..6903b422b4150 100644 --- a/clang/test/AST/ast-dump-decl.m +++ b/clang/test/AST/ast-dump-decl.m @@ -47,9 +47,9 @@ - (int) TestObjCMethodDecl: (int)i, ... { } // CHECK: ObjCMethodDecl{{.*}} - TestObjCMethodDecl: 'int' variadic // CHECK-NEXT: ImplicitParamDecl{{.*}} self -// CHECK-NEXT: ImplicitParamDecl{{.*}} _cmd -// CHECK-NEXT: ParmVarDecl{{.*}} i 'int' -// CHECK-NEXT: CompoundStmt +// CHECK: ImplicitParamDecl{{.*}} _cmd +// CHECK: ParmVarDecl{{.*}} i 'int' +// CHECK: CompoundStmt @end @protocol TestObjCProtocolDecl @@ -121,7 +121,7 @@ @interface TestObjCProperty: A // CHECK-NEXT: ObjCMethodDecl{{.*}} getterFoo // CHECK-NEXT: ObjCMethodDecl{{.*}} setterFoo: // CHECK-NEXT: ParmVarDecl{{.*}} foo -// CHECK-NEXT: ObjCMethodDecl{{.*}} bar +// CHECK: ObjCMethodDecl{{.*}} bar // CHECK-NEXT: ObjCMethodDecl{{.*}} setBar: // CHECK-NEXT: ParmVarDecl{{.*}} bar @@ -147,7 +147,7 @@ void TestBlockDecl(int x) { // CHECK: FunctionDecl{{.*}}TestBlockDecl // CHECK: BlockDecl {{.+}} col:3 variadic // CHECK-NEXT: ParmVarDecl{{.*}} y 'int' -// CHECK-NEXT: capture ParmVar{{.*}} 'x' 'int' +// CHECK: capture ParmVar{{.*}} 'x' 'int' // CHECK-NEXT: CompoundStmt // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: DeclRefExpr{{.*}} 'x' diff --git a/clang/test/AST/ast-dump-decl.mm b/clang/test/AST/ast-dump-decl.mm index c9282e9537e28..ffd755062dbe8 100644 --- a/clang/test/AST/ast-dump-decl.mm +++ b/clang/test/AST/ast-dump-decl.mm @@ -44,9 +44,9 @@ - (void) foo { // CHECK-NEXT: CompoundStmt // CHECK-NEXT: CXXConstructorDecl{{.*}} 'void (const X &) // CHECK-NEXT: ParmVarDecl{{.*}} 'const X &' -// CHECK-NEXT: CXXConstructorDecl{{.*}} 'void (X &&) +// CHECK: CXXConstructorDecl{{.*}} 'void (X &&) // CHECK-NEXT: ParmVarDecl{{.*}} 'X &&' -// CHECK-NEXT: CXXDestructorDecl +// CHECK: CXXDestructorDecl // CHECK-NEXT: ObjCIvarDecl{{.*}} X // CHECK-NEXT: ObjCMethodDecl{{.*}} foo diff --git a/clang/test/AST/ast-dump-default-arg-json.cpp b/clang/test/AST/ast-dump-default-arg-json.cpp index b6a138934caf9..a2765cced1426 100644 --- a/clang/test/AST/ast-dump-default-arg-json.cpp +++ b/clang/test/AST/ast-dump-default-arg-json.cpp @@ -1,2091 +1,2502 @@ -// RUN: %clang_cc1 -std=c++23 -triple x86_64-linux-gnu -fsyntax-only -ast-dump=json %s | FileCheck %s - -struct S { - int arr[1]; - const int *begin() const { return arr; } - const int *end() const { return &arr[1]; } - S() {} - ~S() {} -}; - -S func(const int &, const S &s = S()); - -void test() { - for (auto v : func(1)) {} -} - -// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "TranslationUnitDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TypedefDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__int128_t", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "__int128" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BuiltinType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "__int128" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TypedefDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__uint128_t", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "unsigned __int128" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BuiltinType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "unsigned __int128" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TypedefDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__NSConstantString", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "__NSConstantString_tag" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "RecordType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "__NSConstantString_tag" -// CHECK-NEXT: }, -// CHECK-NEXT: "decl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "name": "__NSConstantString_tag" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TypedefDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__builtin_ms_va_list", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char *" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "PointerType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char *" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BuiltinType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TypedefDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__builtin_va_list", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "__va_list_tag[1]" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ConstantArrayType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "__va_list_tag[1]" -// CHECK-NEXT: }, -// CHECK-NEXT: "size": 1, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "RecordType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "__va_list_tag" -// CHECK-NEXT: }, -// CHECK-NEXT: "decl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "name": "__va_list_tag" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 110, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 3, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 103, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 235, -// CHECK-NEXT: "line": 9, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "S", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "userProvided": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "userDeclared": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasUserDeclaredConstructor": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "moveAssign": {}, -// CHECK-NEXT: "moveCtor": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 110, -// CHECK-NEXT: "line": 3, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 103, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 110, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "S", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 120, -// CHECK-NEXT: "line": 4, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 116, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 125, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "arr", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int[1]" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 141, -// CHECK-NEXT: "line": 5, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 130, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 169, -// CHECK-NEXT: "col": 42, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "begin", -// CHECK-NEXT: "mangledName": "_ZNK1S5beginEv", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int *() const" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 155, -// CHECK-NEXT: "col": 28, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 169, -// CHECK-NEXT: "col": 42, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ReturnStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 157, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 164, -// CHECK-NEXT: "col": 37, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 164, -// CHECK-NEXT: "col": 37, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 164, -// CHECK-NEXT: "col": 37, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "ArrayToPointerDecay", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "MemberExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 164, -// CHECK-NEXT: "col": 37, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 164, -// CHECK-NEXT: "col": 37, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int[1]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "name": "arr", -// CHECK-NEXT: "isArrow": true, -// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXThisExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 164, -// CHECK-NEXT: "col": 37, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 164, -// CHECK-NEXT: "col": 37, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "implicit": true -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 184, -// CHECK-NEXT: "line": 6, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 173, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 214, -// CHECK-NEXT: "col": 44, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "end", -// CHECK-NEXT: "mangledName": "_ZNK1S3endEv", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int *() const" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 196, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 214, -// CHECK-NEXT: "col": 44, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ReturnStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 198, -// CHECK-NEXT: "col": 28, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 211, -// CHECK-NEXT: "col": 41, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 205, -// CHECK-NEXT: "col": 35, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 211, -// CHECK-NEXT: "col": 41, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "&", -// CHECK-NEXT: "canOverflow": false, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ArraySubscriptExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 206, -// CHECK-NEXT: "col": 36, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 211, -// CHECK-NEXT: "col": 41, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 206, -// CHECK-NEXT: "col": 36, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 206, -// CHECK-NEXT: "col": 36, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "ArrayToPointerDecay", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "MemberExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 206, -// CHECK-NEXT: "col": 36, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 206, -// CHECK-NEXT: "col": 36, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int[1]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "name": "arr", -// CHECK-NEXT: "isArrow": true, -// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXThisExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 206, -// CHECK-NEXT: "col": 36, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 206, -// CHECK-NEXT: "col": 36, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "implicit": true -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 210, -// CHECK-NEXT: "col": 40, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 210, -// CHECK-NEXT: "col": 40, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConstructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 218, -// CHECK-NEXT: "line": 7, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 218, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 223, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "S", -// CHECK-NEXT: "mangledName": "_ZN1SC1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 222, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 223, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDestructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 227, -// CHECK-NEXT: "line": 8, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 227, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 233, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "~S", -// CHECK-NEXT: "mangledName": "_ZN1SD1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void () noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 232, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 233, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConstructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 110, -// CHECK-NEXT: "line": 3, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 110, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 110, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "S", -// CHECK-NEXT: "mangledName": "_ZN1SC1ERKS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (const S &)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true, -// CHECK-NEXT: "explicitlyDefaulted": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 110, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 110, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 110, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S &" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 241, -// CHECK-NEXT: "line": 11, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 239, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 275, -// CHECK-NEXT: "col": 37, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "func", -// CHECK-NEXT: "mangledName": "_Z4funcRKiRK1S", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S (const int &, const S &)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 257, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 246, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 256, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int &" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 268, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 259, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 274, -// CHECK-NEXT: "col": 36, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "s", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S &" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ExprWithCleanups", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 272, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 274, -// CHECK-NEXT: "col": 36, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "cleanupsHaveSideEffects": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "MaterializeTemporaryExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 272, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 274, -// CHECK-NEXT: "col": 36, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "storageDuration": "full expression", -// CHECK-NEXT: "boundToLValueRef": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 272, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 274, -// CHECK-NEXT: "col": 36, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "NoOp", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXBindTemporaryExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 272, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 274, -// CHECK-NEXT: "col": 36, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "temp": "0x{{.*}}", -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDestructorDecl", -// CHECK-NEXT: "name": "~S", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void () noexcept" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXTemporaryObjectExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 272, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 274, -// CHECK-NEXT: "col": 36, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "ctorType": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "hadMultipleCandidates": true, -// CHECK-NEXT: "constructionKind": "complete" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 284, -// CHECK-NEXT: "line": 13, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 279, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 321, -// CHECK-NEXT: "line": 15, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "test", -// CHECK-NEXT: "mangledName": "_Z4testv", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 291, -// CHECK-NEXT: "line": 13, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 321, -// CHECK-NEXT: "line": 15, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXForRangeStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 295, -// CHECK-NEXT: "line": 14, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 319, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: {}, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 309, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 309, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 309, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 309, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 315, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "__range1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S &&" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ExprWithCleanups", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 309, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 315, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "xvalue", -// CHECK-NEXT: "cleanupsHaveSideEffects": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "MaterializeTemporaryExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 309, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 315, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "xvalue", -// CHECK-NEXT: "extendingDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__range1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S &&" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "storageDuration": "automatic", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXBindTemporaryExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 309, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 315, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "temp": "0x{{.*}}", -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDestructorDecl", -// CHECK-NEXT: "name": "~S", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void () noexcept" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 309, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 315, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 309, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 309, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S (*)(const int &, const S &)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "FunctionToPointerDecay", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 309, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 309, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S (const int &, const S &)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "func", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S (const int &, const S &)" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "MaterializeTemporaryExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 314, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 314, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "extendingDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__range1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S &&" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "storageDuration": "automatic", -// CHECK-NEXT: "boundToLValueRef": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 314, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 314, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "NoOp", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 314, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 314, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDefaultArgExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "hasRewrittenInit": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "MaterializeTemporaryExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 272, -// CHECK-NEXT: "line": 11, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 274, -// CHECK-NEXT: "col": 36, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "extendingDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__range1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S &&" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "storageDuration": "automatic", -// CHECK-NEXT: "boundToLValueRef": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 272, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 274, -// CHECK-NEXT: "col": 36, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "NoOp", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXBindTemporaryExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 272, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 274, -// CHECK-NEXT: "col": 36, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "temp": "0x{{.*}}", -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDestructorDecl", -// CHECK-NEXT: "name": "~S", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void () noexcept" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXTemporaryObjectExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 272, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 274, -// CHECK-NEXT: "col": 36, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "ctorType": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "hadMultipleCandidates": true, -// CHECK-NEXT: "constructionKind": "complete" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "line": 14, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "__begin1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMemberCallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "MemberExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "name": "begin", -// CHECK-NEXT: "isArrow": false, -// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "castKind": "NoOp", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__range1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S &&" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "__end1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMemberCallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "MemberExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "name": "end", -// CHECK-NEXT: "isArrow": false, -// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "castKind": "NoOp", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__range1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S &&" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "!=", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__begin1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__end1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "++", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__begin1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 300, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 316, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 305, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 300, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "v", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "*", -// CHECK-NEXT: "canOverflow": false, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__begin1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 318, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 319, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } +// RUN: %clang_cc1 -std=c++23 -triple x86_64-linux-gnu -fsyntax-only -ast-dump=json %s | FileCheck %s + +struct S { + int arr[1]; + const int *begin() const { return arr; } + const int *end() const { return &arr[1]; } + S() {} + ~S() {} +}; + +S func(const int &, const S &s = S()); + +void test() { + for (auto v : func(1)) {} +} + +// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "TranslationUnitDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__int128_t", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "__int128" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "__int128" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__uint128_t", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "unsigned __int128" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "unsigned __int128" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__NSConstantString", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "__NSConstantString_tag" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "__NSConstantString_tag" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "__NSConstantString_tag" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__builtin_ms_va_list", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__builtin_va_list", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "__va_list_tag[1]" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ConstantArrayType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "__va_list_tag[1]" +// CHECK-NEXT: }, +// CHECK-NEXT: "size": 1, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "array" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "__va_list_tag" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "__va_list_tag" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 112, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 3, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 105, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 243, +// CHECK-NEXT: "line": 9, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "S", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "userProvided": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "userDeclared": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasUserDeclaredConstructor": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "moveAssign": {}, +// CHECK-NEXT: "moveCtor": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 112, +// CHECK-NEXT: "line": 3, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 105, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 112, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "S", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 123, +// CHECK-NEXT: "line": 4, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 119, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 128, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "arr", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[1]" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[1]" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "array" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 145, +// CHECK-NEXT: "line": 5, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 134, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 173, +// CHECK-NEXT: "col": 42, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "begin", +// CHECK-NEXT: "mangledName": "_ZNK1S5beginEv", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *() const" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 159, +// CHECK-NEXT: "col": 28, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 173, +// CHECK-NEXT: "col": 42, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ReturnStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 161, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 168, +// CHECK-NEXT: "col": 37, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 168, +// CHECK-NEXT: "col": 37, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 168, +// CHECK-NEXT: "col": 37, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "ArrayToPointerDecay", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MemberExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 168, +// CHECK-NEXT: "col": 37, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 168, +// CHECK-NEXT: "col": 37, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int[1]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "name": "arr", +// CHECK-NEXT: "isArrow": true, +// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXThisExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 168, +// CHECK-NEXT: "col": 37, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 168, +// CHECK-NEXT: "col": 37, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "implicit": true +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 189, +// CHECK-NEXT: "line": 6, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 178, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 219, +// CHECK-NEXT: "col": 44, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "end", +// CHECK-NEXT: "mangledName": "_ZNK1S3endEv", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *() const" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 201, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 219, +// CHECK-NEXT: "col": 44, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ReturnStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 203, +// CHECK-NEXT: "col": 28, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 216, +// CHECK-NEXT: "col": 41, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 210, +// CHECK-NEXT: "col": 35, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 216, +// CHECK-NEXT: "col": 41, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "&", +// CHECK-NEXT: "canOverflow": false, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ArraySubscriptExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 211, +// CHECK-NEXT: "col": 36, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 216, +// CHECK-NEXT: "col": 41, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 211, +// CHECK-NEXT: "col": 36, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 211, +// CHECK-NEXT: "col": 36, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "ArrayToPointerDecay", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MemberExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 211, +// CHECK-NEXT: "col": 36, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 211, +// CHECK-NEXT: "col": 36, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int[1]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "name": "arr", +// CHECK-NEXT: "isArrow": true, +// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXThisExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 211, +// CHECK-NEXT: "col": 36, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 211, +// CHECK-NEXT: "col": 36, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "implicit": true +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 215, +// CHECK-NEXT: "col": 40, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 215, +// CHECK-NEXT: "col": 40, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConstructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 224, +// CHECK-NEXT: "line": 7, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 224, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 229, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "S", +// CHECK-NEXT: "mangledName": "_ZN1SC1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 228, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 229, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDestructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 234, +// CHECK-NEXT: "line": 8, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 234, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 240, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "~S", +// CHECK-NEXT: "mangledName": "_ZN1SD1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void () noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 239, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 240, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConstructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 112, +// CHECK-NEXT: "line": 3, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 112, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 112, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "S", +// CHECK-NEXT: "mangledName": "_ZN1SC1ERKS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (const S &)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true, +// CHECK-NEXT: "explicitlyDefaulted": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 112, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 112, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 112, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S &" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S &" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "qualTypeDetail": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "const", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 251, +// CHECK-NEXT: "line": 11, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 249, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 285, +// CHECK-NEXT: "col": 37, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "func", +// CHECK-NEXT: "mangledName": "_Z4funcRKiRK1S", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S (const int &, const S &)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 267, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 256, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 266, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int &" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int &" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "qualTypeDetail": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "const", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 278, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 269, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 284, +// CHECK-NEXT: "col": 36, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "s", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S &" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ExprWithCleanups", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 282, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 284, +// CHECK-NEXT: "col": 36, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "cleanupsHaveSideEffects": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MaterializeTemporaryExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 282, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 284, +// CHECK-NEXT: "col": 36, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "storageDuration": "full expression", +// CHECK-NEXT: "boundToLValueRef": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 282, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 284, +// CHECK-NEXT: "col": 36, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NoOp", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXBindTemporaryExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 282, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 284, +// CHECK-NEXT: "col": 36, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "temp": "0x{{.*}}", +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDestructorDecl", +// CHECK-NEXT: "name": "~S", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void () noexcept" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXTemporaryObjectExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 282, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 284, +// CHECK-NEXT: "col": 36, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "ctorType": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "hadMultipleCandidates": true, +// CHECK-NEXT: "constructionKind": "complete" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 296, +// CHECK-NEXT: "line": 13, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 291, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 335, +// CHECK-NEXT: "line": 15, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "test", +// CHECK-NEXT: "mangledName": "_Z4testv", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 303, +// CHECK-NEXT: "line": 13, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 335, +// CHECK-NEXT: "line": 15, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXForRangeStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 308, +// CHECK-NEXT: "line": 14, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 332, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: {}, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 322, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 322, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 322, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 322, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 328, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "__range1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S &&" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ExprWithCleanups", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 322, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 328, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "xvalue", +// CHECK-NEXT: "cleanupsHaveSideEffects": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MaterializeTemporaryExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 322, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 328, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "xvalue", +// CHECK-NEXT: "extendingDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__range1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S &&" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "storageDuration": "automatic", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXBindTemporaryExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 322, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 328, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "temp": "0x{{.*}}", +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDestructorDecl", +// CHECK-NEXT: "name": "~S", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void () noexcept" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 322, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 328, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 322, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 322, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S (*)(const int &, const S &)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "FunctionToPointerDecay", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 322, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 322, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S (const int &, const S &)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "func", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S (const int &, const S &)" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S (const int &, const S &)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MaterializeTemporaryExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 327, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 327, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "extendingDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__range1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S &&" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "storageDuration": "automatic", +// CHECK-NEXT: "boundToLValueRef": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 327, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 327, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NoOp", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 327, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 327, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDefaultArgExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "hasRewrittenInit": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MaterializeTemporaryExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 282, +// CHECK-NEXT: "line": 11, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 284, +// CHECK-NEXT: "col": 36, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "extendingDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__range1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S &&" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "storageDuration": "automatic", +// CHECK-NEXT: "boundToLValueRef": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 282, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 284, +// CHECK-NEXT: "col": 36, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NoOp", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXBindTemporaryExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 282, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 284, +// CHECK-NEXT: "col": 36, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "temp": "0x{{.*}}", +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDestructorDecl", +// CHECK-NEXT: "name": "~S", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void () noexcept" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXTemporaryObjectExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 282, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 284, +// CHECK-NEXT: "col": 36, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "ctorType": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "hadMultipleCandidates": true, +// CHECK-NEXT: "constructionKind": "complete" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S &&" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "AutoType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "undeduced": false, +// CHECK-NEXT: "typeKeyword": "auto", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "line": 14, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "__begin1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMemberCallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MemberExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "name": "begin", +// CHECK-NEXT: "isArrow": false, +// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "castKind": "NoOp", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__range1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S &&" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "AutoType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "undeduced": false, +// CHECK-NEXT: "typeKeyword": "auto", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualTypeDetail": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "__end1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMemberCallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MemberExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "name": "end", +// CHECK-NEXT: "isArrow": false, +// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "castKind": "NoOp", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__range1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S &&" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "undeduced": false, +// CHECK-NEXT: "typeKeyword": "auto", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "!=", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__begin1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__end1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "++", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__begin1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 313, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 329, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 318, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 313, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "v", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "*", +// CHECK-NEXT: "canOverflow": false, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__begin1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "AutoType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "undeduced": false, +// CHECK-NEXT: "typeKeyword": "auto", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 331, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 332, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } diff --git a/clang/test/AST/ast-dump-default-init-json.cpp b/clang/test/AST/ast-dump-default-init-json.cpp index f4949a9c9eedf..adcc40ff79b72 100644 --- a/clang/test/AST/ast-dump-default-init-json.cpp +++ b/clang/test/AST/ast-dump-default-init-json.cpp @@ -1,929 +1,1000 @@ -// RUN: %clang_cc1 -triple x86_64-linux-gnu -fsyntax-only -ast-dump=json %s | FileCheck %s - -struct A { - int arr[1]; -}; - -struct B { - const A &a = A{{0}}; -}; - -void test() { - B b{}; -} - -// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "TranslationUnitDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TypedefDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__int128_t", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "__int128" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BuiltinType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "__int128" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TypedefDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__uint128_t", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "unsigned __int128" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BuiltinType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "unsigned __int128" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TypedefDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__NSConstantString", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "__NSConstantString_tag" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "RecordType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "__NSConstantString_tag" -// CHECK-NEXT: }, -// CHECK-NEXT: "decl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "name": "__NSConstantString_tag" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TypedefDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__builtin_ms_va_list", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char *" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "PointerType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char *" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BuiltinType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TypedefDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__builtin_va_list", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "__va_list_tag[1]" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ConstantArrayType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "__va_list_tag[1]" -// CHECK-NEXT: }, -// CHECK-NEXT: "size": 1, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "RecordType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "__va_list_tag" -// CHECK-NEXT: }, -// CHECK-NEXT: "decl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "name": "__va_list_tag" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 99, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 3, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 92, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 117, -// CHECK-NEXT: "line": 5, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "A", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 99, -// CHECK-NEXT: "line": 3, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 92, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 99, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "A", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 109, -// CHECK-NEXT: "line": 4, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 105, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 114, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "arr", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int[1]" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDestructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 99, -// CHECK-NEXT: "line": 3, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 99, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 99, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "~A", -// CHECK-NEXT: "mangledName": "_ZN1AD1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void () noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "explicitlyDefaulted": "default" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 128, -// CHECK-NEXT: "line": 7, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 121, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 155, -// CHECK-NEXT: "line": 9, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "B", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "nonTrivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 128, -// CHECK-NEXT: "line": 7, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 121, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 128, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "B", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 143, -// CHECK-NEXT: "line": 8, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 134, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 152, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const A &" -// CHECK-NEXT: }, -// CHECK-NEXT: "hasInClassInitializer": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ExprWithCleanups", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 147, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 152, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const A" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "MaterializeTemporaryExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 147, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 152, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const A" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "extendingDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const A &" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "storageDuration": "automatic", -// CHECK-NEXT: "boundToLValueRef": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 147, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 152, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const A" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "NoOp", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXFunctionalCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 147, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 152, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "A" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "NoOp", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "InitListExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 148, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 152, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "A" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "InitListExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 149, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 151, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int[1]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 150, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 150, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 164, -// CHECK-NEXT: "line": 11, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 159, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 182, -// CHECK-NEXT: "line": 13, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "test", -// CHECK-NEXT: "mangledName": "_Z4testv", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 171, -// CHECK-NEXT: "line": 11, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 182, -// CHECK-NEXT: "line": 13, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 175, -// CHECK-NEXT: "line": 12, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 180, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 177, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 175, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 179, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "B" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "list", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "InitListExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 178, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 179, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "B" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDefaultInitExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 179, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 179, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const A" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "hasRewrittenInit": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ExprWithCleanups", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 147, -// CHECK-NEXT: "line": 8, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 152, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const A" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "MaterializeTemporaryExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 147, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 152, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const A" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "extendingDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "B" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "storageDuration": "automatic", -// CHECK-NEXT: "boundToLValueRef": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 147, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 152, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const A" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "NoOp", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXFunctionalCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 147, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 152, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "A" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "NoOp", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "InitListExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 148, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 152, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "A" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "InitListExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 149, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 151, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int[1]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 150, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 150, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } +// RUN: %clang_cc1 -triple x86_64-linux-gnu -fsyntax-only -ast-dump=json %s | FileCheck %s + +struct A { + int arr[1]; +}; + +struct B { + const A &a = A{{0}}; +}; + +void test() { + B b{}; +} + +// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "TranslationUnitDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__int128_t", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "__int128" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "__int128" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__uint128_t", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "unsigned __int128" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "unsigned __int128" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__NSConstantString", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "__NSConstantString_tag" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "__NSConstantString_tag" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "__NSConstantString_tag" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__builtin_ms_va_list", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__builtin_va_list", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "__va_list_tag[1]" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ConstantArrayType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "__va_list_tag[1]" +// CHECK-NEXT: }, +// CHECK-NEXT: "size": 1, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "array" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "__va_list_tag" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "__va_list_tag" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 101, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 3, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 94, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 121, +// CHECK-NEXT: "line": 5, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "A", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 101, +// CHECK-NEXT: "line": 3, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 94, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 101, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "A", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 112, +// CHECK-NEXT: "line": 4, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 108, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 117, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "arr", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[1]" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[1]" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "array" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDestructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 101, +// CHECK-NEXT: "line": 3, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 101, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 101, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "~A", +// CHECK-NEXT: "mangledName": "_ZN1AD1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void () noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "explicitlyDefaulted": "default" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 134, +// CHECK-NEXT: "line": 7, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 127, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 163, +// CHECK-NEXT: "line": 9, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "B", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "nonTrivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 134, +// CHECK-NEXT: "line": 7, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 127, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 134, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "B", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 150, +// CHECK-NEXT: "line": 8, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 141, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 159, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const A &" +// CHECK-NEXT: }, +// CHECK-NEXT: "hasInClassInitializer": true, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const A &" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ExprWithCleanups", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 154, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 159, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const A" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MaterializeTemporaryExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 154, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 159, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const A" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "extendingDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const A &" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "storageDuration": "automatic", +// CHECK-NEXT: "boundToLValueRef": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 154, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 159, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const A" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NoOp", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXFunctionalCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 154, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 159, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "A" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NoOp", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "InitListExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 155, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 159, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "A" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "InitListExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 156, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 158, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[1]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 157, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 157, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 174, +// CHECK-NEXT: "line": 11, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 169, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 194, +// CHECK-NEXT: "line": 13, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "test", +// CHECK-NEXT: "mangledName": "_Z4testv", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 181, +// CHECK-NEXT: "line": 11, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 194, +// CHECK-NEXT: "line": 13, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 186, +// CHECK-NEXT: "line": 12, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 191, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 188, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 186, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 190, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "B" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "list", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "InitListExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 189, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 190, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "B" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDefaultInitExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 190, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 190, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const A" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "hasRewrittenInit": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ExprWithCleanups", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 154, +// CHECK-NEXT: "line": 8, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 159, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const A" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MaterializeTemporaryExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 154, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 159, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const A" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "extendingDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "B" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "storageDuration": "automatic", +// CHECK-NEXT: "boundToLValueRef": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 154, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 159, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const A" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NoOp", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXFunctionalCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 154, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 159, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "A" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NoOp", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "InitListExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 155, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 159, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "A" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "InitListExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 156, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 158, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[1]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 157, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 157, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "B" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "B" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "B" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } diff --git a/clang/test/AST/ast-dump-expr-errors.cpp b/clang/test/AST/ast-dump-expr-errors.cpp index 5661a41465eb6..e29934088c65f 100644 --- a/clang/test/AST/ast-dump-expr-errors.cpp +++ b/clang/test/AST/ast-dump-expr-errors.cpp @@ -1,46 +1,52 @@ -// RUN: not %clang_cc1 -triple x86_64-unknown-unknown -Wno-unused-value -fcxx-exceptions -std=gnu++17 -ast-dump -frecovery-ast %s | FileCheck -strict-whitespace %s - -// Check errors flag is set for RecoveryExpr. -// -// CHECK: VarDecl {{.*}} a -// CHECK-NEXT:`-RecoveryExpr {{.*}} contains-errors -// CHECK-NEXT: `-UnresolvedLookupExpr {{.*}} 'bar' -int a = bar(); - -// The flag propagates through more complicated calls. -// -// CHECK: VarDecl {{.*}} b -// CHECK-NEXT:`-CallExpr {{.*}} contains-errors -// CHECK-NEXT: |-UnresolvedLookupExpr {{.*}} 'bar' -// CHECK-NEXT: |-RecoveryExpr {{.*}} contains-errors -// CHECK-NEXT: | `-UnresolvedLookupExpr {{.*}} 'baz' -// CHECK-NEXT: `-RecoveryExpr {{.*}} contains-errors -// CHECK-NEXT: `-UnresolvedLookupExpr {{.*}} 'qux' -int b = bar(baz(), qux()); - -// Also propagates through more complicated expressions. -// -// CHECK: |-VarDecl {{.*}} c -// CHECK-NEXT:| `-BinaryOperator {{.*}} '' contains-errors '*' -// CHECK-NEXT:| |-UnaryOperator {{.*}} '' contains-errors prefix '&' -// CHECK-NEXT:| | `-ParenExpr {{.*}} '' contains-errors -// CHECK-NEXT:| | `-BinaryOperator {{.*}} '' contains-errors '+' -// CHECK-NEXT:| | |-RecoveryExpr {{.*}} '' contains-errors -// CHECK-NEXT:| | | `-UnresolvedLookupExpr {{.*}} 'bar' -// CHECK-NEXT:| | `-RecoveryExpr {{.*}} '' contains-errors -// CHECK-NEXT:| | `-UnresolvedLookupExpr {{.*}} 'baz' -int c = &(bar() + baz()) * 10; - -// Errors flag propagates even when type is not dependent anymore. -// CHECK: |-VarDecl {{.*}} d -// CHECK-NEXT:| `-CXXStaticCastExpr {{.*}} 'int' contains-errors -// CHECK-NEXT:| `-BinaryOperator {{.*}} '' contains-errors '+' -// CHECK-NEXT:| |-RecoveryExpr {{.*}} '' contains-errors -// CHECK-NEXT:| | `-UnresolvedLookupExpr {{.*}} 'bar' -// CHECK-NEXT:| `-IntegerLiteral {{.*}} 1 -int d = static_cast(bar() + 1); - - -// Error type should result in an invalid decl. -// CHECK: -VarDecl {{.*}} invalid f 'decltype((bar))' -decltype(bar()) f; +// RUN: not %clang_cc1 -triple x86_64-unknown-unknown -Wno-unused-value -fcxx-exceptions -std=gnu++17 -ast-dump -frecovery-ast %s | FileCheck -strict-whitespace %s + +int a = bar(); +// CHECK: |-VarDecl {{.*}} a 'int' cinit +// CHECK: | |-RecoveryExpr {{.*}} '' contains-errors lvalue +// CHECK: | | `-UnresolvedLookupExpr {{.*}} '' lvalue (ADL) = 'bar' empty +// CHECK: | `-typeDetails: BuiltinType {{.*}} 'int' + +// The flag propagates through more complicated calls. +int b = bar(baz(), qux()); +// CHECK: |-VarDecl {{.*}} b 'int' cinit +// CHECK: | |-CallExpr {{.*}} '' contains-errors +// CHECK: | | |-UnresolvedLookupExpr {{.*}} '' lvalue (ADL) = 'bar' empty +// CHECK: | | |-RecoveryExpr {{.*}} '' contains-errors lvalue +// CHECK: | | | `-UnresolvedLookupExpr {{.*}} '' lvalue (ADL) = 'baz' empty +// CHECK: | | `-RecoveryExpr {{.*}} '' contains-errors lvalue +// CHECK: | | `-UnresolvedLookupExpr {{.*}} '' lvalue (ADL) = 'qux' empty +// CHECK: | `-typeDetails: BuiltinType {{.*}} 'int' + +// Also propagates through more complicated expressions. +int c = &(bar() + baz()) * 10; + +// CHECK: |-VarDecl {{.*}} c 'int' cinit +// CHECK: | |-BinaryOperator {{.*}} '' contains-errors '*' +// CHECK: | | |-UnaryOperator {{.*}} '' contains-errors prefix '&' cannot overflow +// CHECK: | | | `-ParenExpr {{.*}} '' contains-errors +// CHECK: | | | `-BinaryOperator {{.*}} '' contains-errors '+' +// CHECK: | | | |-RecoveryExpr {{.*}} '' contains-errors lvalue +// CHECK: | | | | `-UnresolvedLookupExpr {{.*}} '' lvalue (ADL) = 'bar' empty +// CHECK: | | | `-RecoveryExpr {{.*}}'' contains-errors lvalue +// CHECK: | | | `-UnresolvedLookupExpr {{.*}} '' lvalue (ADL) = 'baz' empty +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 10 +// CHECK: | `-typeDetails: BuiltinType {{.*}} 'int' + +// Errors flag propagates even when type is not dependent anymore. +int d = static_cast(bar() + 1); +// CHECK: |-VarDecl {{.*}} d 'int' cinit +// CHECK: | |-CXXStaticCastExpr {{.*}} 'int' contains-errors static_cast +// CHECK: | | `-BinaryOperator {{.*}} '' contains-errors '+' +// CHECK: | | |-RecoveryExpr {{.*}} '' contains-errors lvalue +// CHECK: | | | `-UnresolvedLookupExpr {{.*}} '' lvalue (ADL) = 'bar' empty +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK: | `-typeDetails: BuiltinType {{.*}} 'int' + + +// Error type should result in an invalid decl. + +decltype(bar()) f; +// CHECK: `-VarDecl {{.*}} invalid f 'decltype((bar))' +// CHECK: `-typeDetails: DecltypeType {{.*}} 'decltype((bar))' contains-errors dependent +// CHECK: `-RecoveryExpr {{.*}} '' contains-errors lvalue +// CHECK: `-UnresolvedLookupExpr {{.*}} '' lvalue (ADL) = 'bar' empty \ No newline at end of file diff --git a/clang/test/AST/ast-dump-expr-json.c b/clang/test/AST/ast-dump-expr-json.c index ecb6191c52200..9ac9c2f1282af 100644 --- a/clang/test/AST/ast-dump-expr-json.c +++ b/clang/test/AST/ast-dump-expr-json.c @@ -1,5550 +1,6187 @@ -// RUN: %clang_cc1 -triple x86_64-unknown-unknown -Wno-unused-value -std=gnu11 -ast-dump=json %s | FileCheck %s - -void Comma(void) { - 1, 2, 3; -} - -void Assignment(int a) { - a = 12; - a += a; -} - -void Conditionals(int a) { - a ? 0 : 1; - a ?: 0; -} - -void BinaryOperators(int a, int b) { - // Logical operators - a || b; - a && b; - - // Bitwise operators - a | b; - a ^ b; - a & b; - - // Equality operators - a == b; - a != b; - - // Relational operators - a < b; - a > b; - a <= b; - a >= b; - - // Bit shifting operators - a << b; - a >> b; - - // Additive operators - a + b; - a - b; - - // Multiplicative operators - a * b; - a / b; - a % b; -} - -void UnaryOperators(int a, int *b) { - // Cast operators - (float)a; - - // ++, --, and ~ are covered elsewhere. - - -a; - +a; - &a; - *b; - !a; - - sizeof a; - sizeof(int); - _Alignof(int); -} - -struct S { - int a; -}; - -void PostfixOperators(int *a, struct S b, struct S *c) { - a[0]; - UnaryOperators(*a, a); - - b.a; - c->a; - - // Postfix ++ and -- are covered elsewhere. - - (int [4]){1, 2, 3, 4, }; - (struct S){1}; -} - -enum E { One }; - -void PrimaryExpressions(int a) { - a; - 'a'; - L'a'; - "a"; - L"a"; - u8"a"; - U"a"; - u"a"; - - 1; - 1u; - 1ll; - 1.0; - 1.0f; - 0xFp100000000000000000000F; - 1.0l; - One; - - (a); -} - -// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py -// using --filters=FunctionDecl - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 3, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 5, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Comma", -// CHECK-NEXT: "mangledName": "Comma", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (void)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 3, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 5, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 4, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": ",", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": ",", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "2" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "3" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 7, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 10, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Assignment", -// CHECK-NEXT: "mangledName": "Assignment", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (int)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 7, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 10, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 8, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "=", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundAssignOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 9, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "+=", -// CHECK-NEXT: "computeLHSType": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "computeResultType": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 12, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 12 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 15, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Conditionals", -// CHECK-NEXT: "mangledName": "Conditionals", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (int)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 12, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 15, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ConditionalOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 13, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryConditionalOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 14, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 17, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 15 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 49, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "BinaryOperators", -// CHECK-NEXT: "mangledName": "BinaryOperators", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (int, int)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 17, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 36, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 49, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 19, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "||", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 20, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "&&", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 23, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "|", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 24, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "^", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 25, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "&", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 28, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "==", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 29, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "!=", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 32, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "<", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 33, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": ">", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 34, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "<=", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 35, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": ">=", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 38, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "<<", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 39, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": ">>", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 42, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "+", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 43, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "-", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 46, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "*", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 47, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "/", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 48, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "%", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 51, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 14 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 66, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "UnaryOperators", -// CHECK-NEXT: "mangledName": "UnaryOperators", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (int, int *)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 51, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 28, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 36, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 66, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CStyleCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 53, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralToFloating", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "isPartOfExplicitCast": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 57, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "-", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 58, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "+", -// CHECK-NEXT: "canOverflow": false, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 59, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "&", -// CHECK-NEXT: "canOverflow": false, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 60, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "*", -// CHECK-NEXT: "canOverflow": false, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 61, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "!", -// CHECK-NEXT: "canOverflow": false, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryExprOrTypeTraitExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 63, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "unsigned long", -// CHECK-NEXT: "qualType": "__size_t" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "name": "sizeof", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "nonOdrUseReason": "unevaluated" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryExprOrTypeTraitExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 64, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "unsigned long", -// CHECK-NEXT: "qualType": "__size_t" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "name": "sizeof", -// CHECK-NEXT: "argType": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryExprOrTypeTraitExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 65, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "unsigned long", -// CHECK-NEXT: "qualType": "__size_t" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "name": "alignof", -// CHECK-NEXT: "argType": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 72, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 83, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "PostfixOperators", -// CHECK-NEXT: "mangledName": "PostfixOperators", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (int *, struct S, struct S *)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 72, -// CHECK-NEXT: "col": 28, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 28, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 40, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 31, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 40, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "struct S" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 53, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 43, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 53, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "c", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "struct S *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 56, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 83, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 73, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ArraySubscriptExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 74, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 14 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 14 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 14 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (*)(int, int *)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "FunctionToPointerDecay", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 14 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 14 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (int, int *)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "UnaryOperators", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (int, int *)" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "*", -// CHECK-NEXT: "canOverflow": false, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 76, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "MemberExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "isArrow": false, -// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "struct S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "struct S" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 77, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "MemberExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "isArrow": true, -// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "struct S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "struct S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "c", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "struct S *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 81, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "ArrayToPointerDecay", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundLiteralExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int[4]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "InitListExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int[4]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "2" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "3" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "4" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 82, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "struct S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundLiteralExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "struct S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "InitListExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "struct S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 87, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 18 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 107, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "PrimaryExpressions", -// CHECK-NEXT: "mangledName": "PrimaryExpressions", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (int)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 87, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 32, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 107, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 88, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CharacterLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 89, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": 97 -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CharacterLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 90, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": 97 -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 91, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "ArrayToPointerDecay", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "StringLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char[2]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "value": "\"a\"" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 92, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "ArrayToPointerDecay", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "StringLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int[2]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "value": "L\"a\"" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 93, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "ArrayToPointerDecay", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "StringLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char[2]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "value": "u8\"a\"" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 94, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "unsigned int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "ArrayToPointerDecay", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "StringLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "unsigned int[2]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "value": "U\"a\"" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 95, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "unsigned short *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "ArrayToPointerDecay", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "StringLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "unsigned short[2]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "value": "u\"a\"" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 97, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 98, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "unsigned int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 99, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "long long" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FloatingLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 100, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "double" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FloatingLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 101, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FloatingLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 102, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 26 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 26 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "+Inf" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FloatingLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 103, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "long double" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 104, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "EnumConstantDecl", -// CHECK-NEXT: "name": "One", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 106, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParenExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -Wno-unused-value -std=gnu11 -ast-dump=json %s | FileCheck %s + +void Comma(void) { + 1, 2, 3; +} + +void Assignment(int a) { + a = 12; + a += a; +} + +void Conditionals(int a) { + a ? 0 : 1; + a ?: 0; +} + +void BinaryOperators(int a, int b) { + // Logical operators + a || b; + a && b; + + // Bitwise operators + a | b; + a ^ b; + a & b; + + // Equality operators + a == b; + a != b; + + // Relational operators + a < b; + a > b; + a <= b; + a >= b; + + // Bit shifting operators + a << b; + a >> b; + + // Additive operators + a + b; + a - b; + + // Multiplicative operators + a * b; + a / b; + a % b; +} + +void UnaryOperators(int a, int *b) { + // Cast operators + (float)a; + + // ++, --, and ~ are covered elsewhere. + + -a; + +a; + &a; + *b; + !a; + + sizeof a; + sizeof(int); + _Alignof(int); +} + +struct S { + int a; +}; + +void PostfixOperators(int *a, struct S b, struct S *c) { + a[0]; + UnaryOperators(*a, a); + + b.a; + c->a; + + // Postfix ++ and -- are covered elsewhere. + + (int [4]){1, 2, 3, 4, }; + (struct S){1}; +} + +enum E { One }; + +void PrimaryExpressions(int a) { + a; + 'a'; + L'a'; + "a"; + L"a"; + u8"a"; + U"a"; + u"a"; + + 1; + 1u; + 1ll; + 1.0; + 1.0f; + 0xFp100000000000000000000F; + 1.0l; + One; + + (a); +} + +// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py +// using --filters=FunctionDecl + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 120, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 3, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 115, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 147, +// CHECK-NEXT: "line": 5, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Comma", +// CHECK-NEXT: "mangledName": "Comma", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (void)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 132, +// CHECK-NEXT: "line": 3, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 147, +// CHECK-NEXT: "line": 5, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 137, +// CHECK-NEXT: "line": 4, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 143, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": ",", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 137, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 140, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": ",", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 137, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 137, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 140, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 140, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "2" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 143, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 143, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "3" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 157, +// CHECK-NEXT: "line": 7, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 152, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 200, +// CHECK-NEXT: "line": 10, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Assignment", +// CHECK-NEXT: "mangledName": "Assignment", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 172, +// CHECK-NEXT: "line": 7, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 168, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 172, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 175, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 200, +// CHECK-NEXT: "line": 10, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 180, +// CHECK-NEXT: "line": 8, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 184, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "=", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 180, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 180, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 184, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 184, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundAssignOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 191, +// CHECK-NEXT: "line": 9, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 196, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "+=", +// CHECK-NEXT: "computeLHSType": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "computeResultType": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 191, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 191, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 196, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 196, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 196, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 196, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 210, +// CHECK-NEXT: "line": 12, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 12 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 205, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 258, +// CHECK-NEXT: "line": 15, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Conditionals", +// CHECK-NEXT: "mangledName": "Conditionals", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 227, +// CHECK-NEXT: "line": 12, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 223, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 227, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 230, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 258, +// CHECK-NEXT: "line": 15, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ConditionalOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 235, +// CHECK-NEXT: "line": 13, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 243, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 235, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 235, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 235, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 235, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 239, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 239, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 243, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 243, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryConditionalOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 249, +// CHECK-NEXT: "line": 14, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 254, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 249, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 249, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 249, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 249, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 249, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 249, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 249, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 249, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 249, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 249, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 249, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 249, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 249, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 249, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 249, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 249, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 254, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 254, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 268, +// CHECK-NEXT: "line": 17, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 15 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 263, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 686, +// CHECK-NEXT: "line": 49, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "BinaryOperators", +// CHECK-NEXT: "mangledName": "BinaryOperators", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int, int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 288, +// CHECK-NEXT: "line": 17, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 284, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 288, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 295, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 291, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 295, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 298, +// CHECK-NEXT: "col": 36, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 686, +// CHECK-NEXT: "line": 49, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 327, +// CHECK-NEXT: "line": 19, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 332, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "||", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 327, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 327, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 327, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 327, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 332, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 332, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 332, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 332, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 338, +// CHECK-NEXT: "line": 20, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 343, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "&&", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 338, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 338, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 338, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 338, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 343, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 343, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 343, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 343, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 375, +// CHECK-NEXT: "line": 23, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 379, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "|", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 375, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 375, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 375, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 375, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 379, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 379, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 379, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 379, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 385, +// CHECK-NEXT: "line": 24, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 389, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "^", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 385, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 385, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 385, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 385, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 389, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 389, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 389, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 389, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 395, +// CHECK-NEXT: "line": 25, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 399, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "&", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 395, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 395, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 395, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 395, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 399, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 399, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 399, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 399, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 432, +// CHECK-NEXT: "line": 28, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 437, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "==", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 432, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 432, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 432, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 432, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 437, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 437, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 437, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 437, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 443, +// CHECK-NEXT: "line": 29, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 448, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "!=", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 443, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 443, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 443, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 443, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 448, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 448, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 448, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 448, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 483, +// CHECK-NEXT: "line": 32, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 487, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "<", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 483, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 483, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 483, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 483, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 487, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 487, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 487, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 487, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 493, +// CHECK-NEXT: "line": 33, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 497, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": ">", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 493, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 493, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 493, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 493, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 497, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 497, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 497, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 497, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 503, +// CHECK-NEXT: "line": 34, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 508, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "<=", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 503, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 503, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 503, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 503, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 508, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 508, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 508, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 508, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 514, +// CHECK-NEXT: "line": 35, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 519, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": ">=", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 514, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 514, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 514, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 514, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 519, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 519, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 519, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 519, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 556, +// CHECK-NEXT: "line": 38, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 561, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "<<", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 556, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 556, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 556, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 556, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 561, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 561, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 561, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 561, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 567, +// CHECK-NEXT: "line": 39, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 572, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": ">>", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 567, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 567, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 567, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 567, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 572, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 572, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 572, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 572, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 605, +// CHECK-NEXT: "line": 42, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 609, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "+", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 605, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 605, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 605, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 605, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 609, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 609, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 609, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 609, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 615, +// CHECK-NEXT: "line": 43, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 619, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "-", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 615, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 615, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 615, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 615, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 619, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 619, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 619, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 619, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 658, +// CHECK-NEXT: "line": 46, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 662, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "*", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 658, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 658, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 658, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 658, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 662, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 662, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 662, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 662, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 668, +// CHECK-NEXT: "line": 47, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 672, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "/", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 668, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 668, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 668, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 668, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 672, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 672, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 672, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 672, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 678, +// CHECK-NEXT: "line": 48, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 682, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "%", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 678, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 678, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 678, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 678, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 682, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 682, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 682, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 682, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 696, +// CHECK-NEXT: "line": 51, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 14 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 691, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 894, +// CHECK-NEXT: "line": 66, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "UnaryOperators", +// CHECK-NEXT: "mangledName": "UnaryOperators", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int, int *)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 715, +// CHECK-NEXT: "line": 51, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 711, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 715, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 723, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 718, +// CHECK-NEXT: "col": 28, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 723, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 726, +// CHECK-NEXT: "col": 36, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 894, +// CHECK-NEXT: "line": 66, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CStyleCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 752, +// CHECK-NEXT: "line": 53, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 759, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralToFloating", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 759, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 759, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "isPartOfExplicitCast": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 759, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 759, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 812, +// CHECK-NEXT: "line": 57, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 813, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "-", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 813, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 813, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 813, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 813, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 819, +// CHECK-NEXT: "line": 58, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 820, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "+", +// CHECK-NEXT: "canOverflow": false, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 820, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 820, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 820, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 820, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 826, +// CHECK-NEXT: "line": 59, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 827, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "&", +// CHECK-NEXT: "canOverflow": false, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 827, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 827, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 833, +// CHECK-NEXT: "line": 60, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 834, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 833, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 834, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "*", +// CHECK-NEXT: "canOverflow": false, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 834, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 834, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 834, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 834, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 840, +// CHECK-NEXT: "line": 61, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 841, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "!", +// CHECK-NEXT: "canOverflow": false, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 841, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 841, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 841, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 841, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryExprOrTypeTraitExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 849, +// CHECK-NEXT: "line": 63, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 856, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "__size_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "name": "sizeof", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 856, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 856, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "nonOdrUseReason": "unevaluated", +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryExprOrTypeTraitExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 862, +// CHECK-NEXT: "line": 64, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 872, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "__size_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "name": "sizeof", +// CHECK-NEXT: "argType": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryExprOrTypeTraitExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 878, +// CHECK-NEXT: "line": 65, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 890, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "__size_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "name": "alignof", +// CHECK-NEXT: "argType": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 932, +// CHECK-NEXT: "line": 72, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 927, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1136, +// CHECK-NEXT: "line": 83, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "PostfixOperators", +// CHECK-NEXT: "mangledName": "PostfixOperators", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int *, struct S, struct S *)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 954, +// CHECK-NEXT: "line": 72, +// CHECK-NEXT: "col": 28, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 949, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 954, +// CHECK-NEXT: "col": 28, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 966, +// CHECK-NEXT: "col": 40, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 957, +// CHECK-NEXT: "col": 31, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 966, +// CHECK-NEXT: "col": 40, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct S" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct S" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct S" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordDecl", +// CHECK-NEXT: "name": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 979, +// CHECK-NEXT: "col": 53, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 969, +// CHECK-NEXT: "col": 43, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 979, +// CHECK-NEXT: "col": 53, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "c", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordDecl", +// CHECK-NEXT: "name": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 982, +// CHECK-NEXT: "col": 56, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1136, +// CHECK-NEXT: "line": 83, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 987, +// CHECK-NEXT: "line": 73, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 990, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ArraySubscriptExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 987, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 990, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 987, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 987, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 987, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 987, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 989, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 989, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 996, +// CHECK-NEXT: "line": 74, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 14 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1016, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 996, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 14 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 996, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 14 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (*)(int, int *)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "FunctionToPointerDecay", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 996, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 14 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 996, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 14 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int, int *)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "UnaryOperators", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int, int *)" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int, int *)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1011, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1012, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1011, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1012, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "*", +// CHECK-NEXT: "canOverflow": false, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1012, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1012, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1012, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1012, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1015, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1015, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1015, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1015, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1024, +// CHECK-NEXT: "line": 76, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1026, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MemberExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1024, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1026, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "isArrow": false, +// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1024, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1024, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct S" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1032, +// CHECK-NEXT: "line": 77, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1035, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MemberExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1032, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1035, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "isArrow": true, +// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1032, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1032, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1032, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1032, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "c", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct S *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1092, +// CHECK-NEXT: "line": 81, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1114, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "ArrayToPointerDecay", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundLiteralExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1092, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1114, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[4]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "InitListExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1101, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1114, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[4]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1102, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1102, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1105, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1105, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "2" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1108, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1108, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "3" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1111, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1111, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "4" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1120, +// CHECK-NEXT: "line": 82, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1132, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundLiteralExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1120, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1132, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "InitListExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1130, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1132, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1131, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1131, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1165, +// CHECK-NEXT: "line": 87, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 18 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1160, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1360, +// CHECK-NEXT: "line": 107, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "PrimaryExpressions", +// CHECK-NEXT: "mangledName": "PrimaryExpressions", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1188, +// CHECK-NEXT: "line": 87, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1184, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1188, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1191, +// CHECK-NEXT: "col": 32, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1360, +// CHECK-NEXT: "line": 107, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1196, +// CHECK-NEXT: "line": 88, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1196, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1196, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1196, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CharacterLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1202, +// CHECK-NEXT: "line": 89, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1202, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": 97 +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CharacterLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1210, +// CHECK-NEXT: "line": 90, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1210, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": 97 +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1219, +// CHECK-NEXT: "line": 91, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1219, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "ArrayToPointerDecay", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "StringLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1219, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1219, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char[2]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "value": "\"a\"" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1227, +// CHECK-NEXT: "line": 92, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1227, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "ArrayToPointerDecay", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "StringLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1227, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1227, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[2]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "value": "L\"a\"" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1236, +// CHECK-NEXT: "line": 93, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1236, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "ArrayToPointerDecay", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "StringLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1236, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1236, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char[2]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "value": "u8\"a\"" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1246, +// CHECK-NEXT: "line": 94, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1246, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "unsigned int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "ArrayToPointerDecay", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "StringLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1246, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1246, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "unsigned int[2]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "value": "U\"a\"" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1255, +// CHECK-NEXT: "line": 95, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1255, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "unsigned short *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "ArrayToPointerDecay", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "StringLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1255, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1255, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "unsigned short[2]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "value": "u\"a\"" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1266, +// CHECK-NEXT: "line": 97, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1266, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1272, +// CHECK-NEXT: "line": 98, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1272, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "unsigned int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1279, +// CHECK-NEXT: "line": 99, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1279, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "long long" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FloatingLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1287, +// CHECK-NEXT: "line": 100, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1287, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "double" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FloatingLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1295, +// CHECK-NEXT: "line": 101, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1295, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FloatingLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1304, +// CHECK-NEXT: "line": 102, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 26 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1304, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 26 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "+Inf" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FloatingLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1335, +// CHECK-NEXT: "line": 103, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1335, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "long double" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1344, +// CHECK-NEXT: "line": 104, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1344, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "EnumConstantDecl", +// CHECK-NEXT: "name": "One", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1354, +// CHECK-NEXT: "line": 106, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1356, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParenExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1354, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1356, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1355, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1355, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } diff --git a/clang/test/AST/ast-dump-expr-json.cpp b/clang/test/AST/ast-dump-expr-json.cpp index 11026c9d302f0..4b825b2c9dc00 100644 --- a/clang/test/AST/ast-dump-expr-json.cpp +++ b/clang/test/AST/ast-dump-expr-json.cpp @@ -1,9229 +1,10359 @@ -// RUN: %clang_cc1 -triple x86_64-unknown-unknown -Wno-unused-value -fcxx-exceptions -std=gnu++17 -ast-dump=json -ast-dump-filter Test %s | FileCheck %s - -namespace std { -using size_t = decltype(sizeof(0)); - -class type_info { -public: - virtual ~type_info(); - bool operator==(const type_info& rhs) const noexcept; - bool operator!=(const type_info& rhs) const noexcept; - type_info(const type_info& rhs) = delete; // cannot be copied - type_info& operator=(const type_info& rhs) = delete; // cannot be copied -}; - -class bad_typeid { -public: - bad_typeid() noexcept; - bad_typeid(const bad_typeid&) noexcept; - virtual ~bad_typeid(); - bad_typeid& operator=(const bad_typeid&) noexcept; - const char* what() const noexcept; -}; -} // namespace std -void *operator new(std::size_t, void *ptr); - -struct S { - virtual ~S() = default; - - void func(int); - template - Ty foo(); - - int i; -}; - -struct T : S {}; - -template -struct U {}; - -void TestThrow() { - throw 12; - throw; -} - -void TestPointerToMember(S obj1, S *obj2, int S::* data, void (S::*call)(int)) { - obj1.*data; - obj2->*data; - (obj1.*call)(12); - (obj2->*call)(12); -} - -void TestCasting(const S *s) { - const_cast(s); - static_cast(s); - dynamic_cast(s); - reinterpret_cast(s); -} - -template -void TestUnaryExpressions(int *p) { - sizeof...(Ts); - noexcept(p - p); - - ::new int; - new (int); - new int{12}; - new int[2]; - new int[2]{1, 2}; - new (p) int; - new (p) int{12}; - - ::delete p; - delete [] p; -} - -void TestPostfixExpressions(S a, S *p, U *r) { - a.func(0); - p->func(0); - p->template foo(); - a.template foo(); - p->~S(); - a.~S(); - a.~decltype(a)(); - p->::S::~S(); - r->template U::~U(); - typeid(a); - typeid(S); - typeid(const volatile S); -} - -template -void TestPrimaryExpressions(Ts... a) { - struct V { - void f() { - this; - - [this]{}; - [*this]{}; - } - }; - - int b, c; - - [](){}; - [](int a, ...){}; - [a...]{}; - [=]{}; - [=] { return b; }; - [&]{}; - [&] { return c; }; - [b, &c]{ return b + c; }; - [a..., x = 12]{}; - []() constexpr {}; - []() mutable {}; - []() noexcept {}; - []() -> int { return 0; }; - - (a + ...); - (... + a); - (a + ... + b); -} - -namespace NS { -struct X {}; -void f(X); -void y(...); -} // namespace NS - -void TestADLCall() { - NS::X x; - f(x); - y(x); -} - -void TestNonADLCall() { - NS::X x; - NS::f(x); -} - -void TestNonADLCall2() { - NS::X x; - using NS::f; - f(x); - y(x); -} - -namespace test_adl_call_three { -using namespace NS; -void TestNonADLCall3() { - X x; - f(x); -} -} // namespace test_adl_call_three - -// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 952, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 41, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 9 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 947, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 987, -// CHECK-NEXT: "line": 44, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestThrow", -// CHECK-NEXT: "mangledName": "_Z9TestThrowv", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 964, -// CHECK-NEXT: "line": 41, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 987, -// CHECK-NEXT: "line": 44, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXThrowExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 968, -// CHECK-NEXT: "line": 42, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 974, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 974, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 974, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXThrowExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 980, -// CHECK-NEXT: "line": 43, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 980, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 995, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 46, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 990, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1141, -// CHECK-NEXT: "line": 51, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestPointerToMember", -// CHECK-NEXT: "mangledName": "_Z19TestPointerToMember1SPS_MS_iMS_FviE", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (S, S *, int S::*, void (S::*)(int))" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1017, -// CHECK-NEXT: "line": 46, -// CHECK-NEXT: "col": 28, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1015, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1017, -// CHECK-NEXT: "col": 28, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "obj1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1026, -// CHECK-NEXT: "col": 37, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1023, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1026, -// CHECK-NEXT: "col": 37, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "obj2", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1041, -// CHECK-NEXT: "col": 52, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1032, -// CHECK-NEXT: "col": 43, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1041, -// CHECK-NEXT: "col": 52, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "data", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int S::*" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1057, -// CHECK-NEXT: "col": 68, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1047, -// CHECK-NEXT: "col": 58, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1066, -// CHECK-NEXT: "col": 77, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "call", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (S::*)(int)" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1069, -// CHECK-NEXT: "col": 80, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1141, -// CHECK-NEXT: "line": 51, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1073, -// CHECK-NEXT: "line": 47, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1079, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "opcode": ".*", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1073, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1073, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "obj1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1079, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1079, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int S::*" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1079, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1079, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int S::*" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "data", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int S::*" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1087, -// CHECK-NEXT: "line": 48, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1094, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "opcode": "->*", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1087, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1087, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1087, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1087, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "obj2", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1094, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1094, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int S::*" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1094, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1094, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int S::*" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "data", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int S::*" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMemberCallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1102, -// CHECK-NEXT: "line": 49, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1117, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParenExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1102, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1113, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1103, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1109, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": ".*", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1103, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1103, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "obj1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1109, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1109, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (S::*)(int)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1109, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1109, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (S::*)(int)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "call", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (S::*)(int)" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1115, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1115, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMemberCallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1122, -// CHECK-NEXT: "line": 50, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1138, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParenExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1122, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1134, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1123, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1130, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "->*", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1123, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1123, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1123, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1123, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "obj2", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1130, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1130, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (S::*)(int)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1130, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1130, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (S::*)(int)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "call", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (S::*)(int)" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1136, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1136, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1149, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 53, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 11 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1144, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1292, -// CHECK-NEXT: "line": 58, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestCasting", -// CHECK-NEXT: "mangledName": "_Z11TestCastingPK1S", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (const S *)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1170, -// CHECK-NEXT: "line": 53, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1161, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1170, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "s", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1173, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1292, -// CHECK-NEXT: "line": 58, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConstCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1177, -// CHECK-NEXT: "line": 54, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1194, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "NoOp", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1193, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1193, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "isPartOfExplicitCast": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1193, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1193, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "s", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXStaticCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1199, -// CHECK-NEXT: "line": 55, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 11 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1223, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const T *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "BaseToDerived", -// CHECK-NEXT: "path": [ -// CHECK-NEXT: { -// CHECK-NEXT: "name": "S" -// CHECK-NEXT: } -// CHECK-NEXT: ], -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1222, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1222, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "isPartOfExplicitCast": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1222, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1222, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "s", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDynamicCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1228, -// CHECK-NEXT: "line": 56, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 12 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1253, -// CHECK-NEXT: "col": 28, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const T *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "Dynamic", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1252, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1252, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "isPartOfExplicitCast": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1252, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1252, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "s", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXReinterpretCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1258, -// CHECK-NEXT: "line": 57, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1289, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "BitCast", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1288, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1288, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "isPartOfExplicitCast": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1288, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1288, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "s", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const S *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionTemplateDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1326, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 61, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 20 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1295, -// CHECK-NEXT: "line": 60, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1533, -// CHECK-NEXT: "line": 75, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestUnaryExpressions", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TemplateTypeParmDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1317, -// CHECK-NEXT: "line": 60, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1305, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1317, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "Ts", -// CHECK-NEXT: "tagUsed": "typename", -// CHECK-NEXT: "depth": 0, -// CHECK-NEXT: "index": 0, -// CHECK-NEXT: "isParameterPack": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1326, -// CHECK-NEXT: "line": 61, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 20 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1321, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1533, -// CHECK-NEXT: "line": 75, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestUnaryExpressions", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (int *)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1352, -// CHECK-NEXT: "line": 61, -// CHECK-NEXT: "col": 32, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1347, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1352, -// CHECK-NEXT: "col": 32, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "p", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1355, -// CHECK-NEXT: "col": 35, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1533, -// CHECK-NEXT: "line": 75, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "SizeOfPackExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1359, -// CHECK-NEXT: "line": 62, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1371, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "unsigned long", -// CHECK-NEXT: "qualType": "__size_t" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "name": "Ts" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXNoexceptExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1376, -// CHECK-NEXT: "line": 63, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1390, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1385, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1389, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "long", -// CHECK-NEXT: "qualType": "__ptrdiff_t" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "-", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1385, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1385, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1385, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1385, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "p", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "nonOdrUseReason": "unevaluated" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1389, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1389, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1389, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1389, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "p", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "nonOdrUseReason": "unevaluated" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXNewExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1396, -// CHECK-NEXT: "line": 65, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1402, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isGlobal": true, -// CHECK-NEXT: "operatorNewDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "operator new", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *(__size_t)" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXNewExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1409, -// CHECK-NEXT: "line": 66, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1417, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "operatorNewDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "operator new", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *(__size_t)" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXNewExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1422, -// CHECK-NEXT: "line": 67, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1432, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "initStyle": "list", -// CHECK-NEXT: "operatorNewDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "operator new", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *(__size_t)" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "InitListExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1429, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1432, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1430, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1430, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXNewExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1437, -// CHECK-NEXT: "line": 68, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1446, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isArray": true, -// CHECK-NEXT: "operatorNewDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "operator new[]", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *(__size_t)" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1445, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1445, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "unsigned long", -// CHECK-NEXT: "qualType": "__size_t" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralCast", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1445, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1445, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "2" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXNewExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1451, -// CHECK-NEXT: "line": 69, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1466, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isArray": true, -// CHECK-NEXT: "initStyle": "list", -// CHECK-NEXT: "operatorNewDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "operator new[]", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *(__size_t)" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1459, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1459, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "unsigned long", -// CHECK-NEXT: "qualType": "__size_t" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralCast", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1459, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1459, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "2" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "InitListExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1461, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1466, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int[2]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1462, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1462, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1465, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1465, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "2" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXNewExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1471, -// CHECK-NEXT: "line": 70, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1479, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isPlacement": true, -// CHECK-NEXT: "operatorNewDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "operator new", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *(std::size_t, void *)" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1476, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1476, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "BitCast", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1476, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1476, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1476, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1476, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "p", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXNewExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1486, -// CHECK-NEXT: "line": 71, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1500, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isPlacement": true, -// CHECK-NEXT: "initStyle": "list", -// CHECK-NEXT: "operatorNewDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "operator new", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *(std::size_t, void *)" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "InitListExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1497, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1500, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1498, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1498, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1491, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1491, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "BitCast", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1491, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1491, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1491, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1491, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "p", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDeleteExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1506, -// CHECK-NEXT: "line": 73, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1515, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isGlobal": true, -// CHECK-NEXT: "operatorDeleteDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "operator delete", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (void *, __size_t) noexcept" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1515, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1515, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1515, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1515, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "p", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDeleteExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1520, -// CHECK-NEXT: "line": 74, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1530, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isArray": true, -// CHECK-NEXT: "isArrayAsWritten": true, -// CHECK-NEXT: "operatorDeleteDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "operator delete[]", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (void *) noexcept" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1530, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1530, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1530, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1530, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "p", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1541, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 77, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 22 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1536, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1807, -// CHECK-NEXT: "line": 90, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestPostfixExpressions", -// CHECK-NEXT: "mangledName": "_Z22TestPostfixExpressions1SPS_P1UIiE", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (S, S *, U *)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1566, -// CHECK-NEXT: "line": 77, -// CHECK-NEXT: "col": 31, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1564, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1566, -// CHECK-NEXT: "col": 31, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1572, -// CHECK-NEXT: "col": 37, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1569, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1572, -// CHECK-NEXT: "col": 37, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "p", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1583, -// CHECK-NEXT: "col": 48, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1575, -// CHECK-NEXT: "col": 40, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1583, -// CHECK-NEXT: "col": 48, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "r", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "U *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1586, -// CHECK-NEXT: "col": 51, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1807, -// CHECK-NEXT: "line": 90, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMemberCallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1590, -// CHECK-NEXT: "line": 78, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1598, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "MemberExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1590, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1592, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "name": "func", -// CHECK-NEXT: "isArrow": false, -// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1590, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1590, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1597, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1597, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMemberCallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1603, -// CHECK-NEXT: "line": 79, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1612, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "MemberExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1603, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1606, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "name": "func", -// CHECK-NEXT: "isArrow": true, -// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1603, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1603, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1603, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1603, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "p", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1611, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1611, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMemberCallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "line": 80, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1638, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "MemberExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1636, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "name": "foo", -// CHECK-NEXT: "isArrow": true, -// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "p", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMemberCallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1643, -// CHECK-NEXT: "line": 81, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1665, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "MemberExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1643, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1663, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "name": "foo", -// CHECK-NEXT: "isArrow": false, -// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1643, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1643, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMemberCallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1670, -// CHECK-NEXT: "line": 82, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1676, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "MemberExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1670, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1674, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "name": "~S", -// CHECK-NEXT: "isArrow": true, -// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1670, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1670, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1670, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1670, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "p", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMemberCallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1681, -// CHECK-NEXT: "line": 83, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1686, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "MemberExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1681, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1684, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "name": "~S", -// CHECK-NEXT: "isArrow": false, -// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1681, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1681, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMemberCallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1691, -// CHECK-NEXT: "line": 84, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1706, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "MemberExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1691, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1693, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "name": "~S", -// CHECK-NEXT: "isArrow": false, -// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1691, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1691, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMemberCallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1711, -// CHECK-NEXT: "line": 85, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1722, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "MemberExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1711, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1720, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "name": "~S", -// CHECK-NEXT: "isArrow": true, -// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1711, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1711, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1711, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1711, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "p", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMemberCallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1727, -// CHECK-NEXT: "line": 86, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1750, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "MemberExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1727, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1748, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "name": "~U", -// CHECK-NEXT: "isArrow": true, -// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1727, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1727, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "U *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1727, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1727, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "U *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "r", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "U *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXTypeidExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1755, -// CHECK-NEXT: "line": 87, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1763, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const std::type_info" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1762, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1762, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXTypeidExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1768, -// CHECK-NEXT: "line": 88, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1776, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const std::type_info" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "typeArg": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXTypeidExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1781, -// CHECK-NEXT: "line": 89, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1804, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const std::type_info" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "typeArg": { -// CHECK-NEXT: "qualType": "const volatile S" -// CHECK-NEXT: }, -// CHECK-NEXT: "adjustedTypeArg": { -// CHECK-NEXT: "qualType": "S" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionTemplateDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1841, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 93, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 22 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1810, -// CHECK-NEXT: "line": 92, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2257, -// CHECK-NEXT: "line": 122, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestPrimaryExpressions", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TemplateTypeParmDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1832, -// CHECK-NEXT: "line": 92, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1820, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1832, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "Ts", -// CHECK-NEXT: "tagUsed": "typename", -// CHECK-NEXT: "depth": 0, -// CHECK-NEXT: "index": 0, -// CHECK-NEXT: "isParameterPack": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1841, -// CHECK-NEXT: "line": 93, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 22 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1836, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2257, -// CHECK-NEXT: "line": 122, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestPrimaryExpressions", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (Ts...)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1870, -// CHECK-NEXT: "line": 93, -// CHECK-NEXT: "col": 35, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1864, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1870, -// CHECK-NEXT: "col": 35, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Ts..." -// CHECK-NEXT: }, -// CHECK-NEXT: "isParameterPack": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1873, -// CHECK-NEXT: "col": 38, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2257, -// CHECK-NEXT: "line": 122, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1877, -// CHECK-NEXT: "line": 94, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1958, -// CHECK-NEXT: "line": 101, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1884, -// CHECK-NEXT: "line": 94, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1877, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1957, -// CHECK-NEXT: "line": 101, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "V", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1884, -// CHECK-NEXT: "line": 94, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1877, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1884, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "V", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1897, -// CHECK-NEXT: "line": 95, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1892, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1953, -// CHECK-NEXT: "line": 100, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "f", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1901, -// CHECK-NEXT: "line": 95, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1953, -// CHECK-NEXT: "line": 100, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXThisExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1909, -// CHECK-NEXT: "line": 96, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1909, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "V *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "LambdaExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1922, -// CHECK-NEXT: "line": 98, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1929, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "(lambda at {{.*}}:98:7)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1922, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1922, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1922, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "tagUsed": "class", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": {}, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isLambda": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": {}, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1922, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1927, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1929, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "operator()", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto () const -> auto" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1928, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1929, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1923, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1923, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1923, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "V *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParenListExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1923, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1923, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NULL TYPE" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXThisExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1923, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1923, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "V *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1928, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1929, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "LambdaExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1938, -// CHECK-NEXT: "line": 99, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1946, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "(lambda at {{.*}}:99:7)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1938, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1938, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1938, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "tagUsed": "class", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isLambda": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": {}, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1938, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1944, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1946, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "operator()", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto () const -> auto" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1945, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1946, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1939, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1939, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1939, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "V" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParenListExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1939, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1939, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NULL TYPE" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1939, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1939, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "V" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "*", -// CHECK-NEXT: "canOverflow": false, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXThisExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1939, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1939, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "V *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1945, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1946, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1963, -// CHECK-NEXT: "line": 103, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1971, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1967, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1963, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1967, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1970, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1963, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1970, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "c", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "LambdaExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1976, -// CHECK-NEXT: "line": 105, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1981, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "(lambda at {{.*}}:105:3)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1976, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1976, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1976, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "tagUsed": "class", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLambda": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": {}, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1976, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1979, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1981, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "operator()", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto () const" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1980, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1981, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConversionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1976, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1976, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1981, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator auto (*)()", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto (*() const noexcept)()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1976, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1976, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1981, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__invoke", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "storageClass": "static", -// CHECK-NEXT: "inline": true -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1980, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1981, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "LambdaExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1986, -// CHECK-NEXT: "line": 106, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2001, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "(lambda at {{.*}}:106:3)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1986, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1986, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1986, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "tagUsed": "class", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLambda": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": {}, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1986, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1999, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2001, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "operator()", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto (int, ...) const" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "variadic": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1993, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1989, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1993, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2000, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2001, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConversionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1986, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1986, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2001, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator auto (*)(int, ...)", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto (*() const noexcept)(int, ...)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1986, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1986, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2001, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__invoke", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto (int, ...)" -// CHECK-NEXT: }, -// CHECK-NEXT: "storageClass": "static", -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "variadic": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1993, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1989, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1993, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2000, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2001, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "LambdaExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2006, -// CHECK-NEXT: "line": 107, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2013, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "(lambda at {{.*}}:107:3)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2006, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2006, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2006, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "tagUsed": "class", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": {}, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isLambda": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": {}, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2006, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2011, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2013, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "operator()", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto () const -> auto" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2012, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2013, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2007, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2007, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2007, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Ts..." -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParenListExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2007, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2007, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NULL TYPE" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2007, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2007, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Ts" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Ts..." -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2012, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2013, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "LambdaExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2018, -// CHECK-NEXT: "line": 108, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2022, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "(lambda at {{.*}}:108:3)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2018, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2018, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2018, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "tagUsed": "class", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLambda": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": {}, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2018, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2020, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2022, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "operator()", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto () const -> auto" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2021, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2022, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2021, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2022, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "LambdaExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2027, -// CHECK-NEXT: "line": 109, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2043, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "(lambda at {{.*}}:109:3)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2027, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2027, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2027, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "tagUsed": "class", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLambda": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": {}, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2027, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2029, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2043, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "operator()", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto () const -> auto" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2031, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2043, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ReturnStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2033, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2040, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2040, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2040, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2031, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2043, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ReturnStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2033, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2040, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2040, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2040, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "LambdaExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2048, -// CHECK-NEXT: "line": 110, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2052, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "(lambda at {{.*}}:110:3)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2048, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2048, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2048, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "tagUsed": "class", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLambda": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": {}, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2048, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2050, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2052, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "operator()", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto () const -> auto" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2051, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2052, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2051, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2052, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "LambdaExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2057, -// CHECK-NEXT: "line": 111, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2073, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "(lambda at {{.*}}:111:3)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2057, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2057, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2057, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "tagUsed": "class", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLambda": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": {}, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2057, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2059, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2073, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "operator()", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto () const -> auto" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2061, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2073, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ReturnStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2063, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2070, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2070, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2070, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "c", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2061, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2073, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ReturnStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2063, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2070, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2070, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2070, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "c", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "LambdaExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2078, -// CHECK-NEXT: "line": 112, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2101, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "(lambda at {{.*}}:112:3)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2078, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2078, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2078, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "tagUsed": "class", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": {}, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isLambda": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": {}, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2078, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2084, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2101, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "operator()", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto () const -> auto" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2085, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2101, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ReturnStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2087, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2098, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2094, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2098, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "+", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2094, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2094, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2094, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2094, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2098, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2098, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2098, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2098, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "c", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2079, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2079, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2079, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2083, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2083, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2083, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int &" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2079, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2079, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2079, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2079, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2083, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2083, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "c", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2085, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2101, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ReturnStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2087, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2098, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2094, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2098, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "+", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2094, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2094, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2094, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2094, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2098, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2098, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2098, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2098, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "c", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "LambdaExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2106, -// CHECK-NEXT: "line": 113, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2121, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "(lambda at {{.*}}:113:3)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2106, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2106, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2106, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "tagUsed": "class", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": {}, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isLambda": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": {}, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2106, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2119, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2121, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "operator()", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto () const -> auto" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2120, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2121, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2107, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2107, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2107, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Ts..." -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2113, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2113, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2113, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParenListExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2107, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2107, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NULL TYPE" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2107, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2107, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Ts" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Ts..." -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2117, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2117, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2120, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2121, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "LambdaExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2126, -// CHECK-NEXT: "line": 114, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2142, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "(lambda at {{.*}}:114:3)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2126, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2126, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2126, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "tagUsed": "class", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLambda": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": {}, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2126, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2131, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 9 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2142, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "operator()", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto () const" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2141, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2142, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConversionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2126, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2126, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2142, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator auto (*)()", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto (*() const noexcept)()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2126, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2126, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2142, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__invoke", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "storageClass": "static", -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2141, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2142, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "LambdaExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2147, -// CHECK-NEXT: "line": 115, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2161, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "(lambda at {{.*}}:115:3)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2147, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2147, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2147, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "tagUsed": "class", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLambda": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": {}, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2147, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2152, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 7 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2161, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "operator()", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2160, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2161, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConversionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2147, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2147, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2161, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator auto (*)()", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto (*() const noexcept)()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2147, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2147, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2161, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__invoke", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "storageClass": "static", -// CHECK-NEXT: "inline": true -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2160, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2161, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "LambdaExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2166, -// CHECK-NEXT: "line": 116, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2181, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "(lambda at {{.*}}:116:3)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2166, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2166, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2166, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "tagUsed": "class", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLambda": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": {}, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2166, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2171, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2181, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "operator()", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto () const noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2180, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2181, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConversionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2166, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2166, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2181, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator auto (*)() noexcept", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto (*() const noexcept)() noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2166, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2166, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2181, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__invoke", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto () noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "storageClass": "static", -// CHECK-NEXT: "inline": true -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2180, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2181, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "LambdaExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2186, -// CHECK-NEXT: "line": 117, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2210, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "(lambda at {{.*}}:117:3)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2186, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2186, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2186, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "tagUsed": "class", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLambda": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": {}, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2186, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2194, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2210, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "operator()", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto () const -> int" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2198, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2210, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ReturnStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2200, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2207, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2207, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2207, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConversionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2186, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2186, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2210, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator int (*)()", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto (*() const noexcept)() -> int" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2186, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2186, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2210, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__invoke", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto () -> int" -// CHECK-NEXT: }, -// CHECK-NEXT: "storageClass": "static", -// CHECK-NEXT: "inline": true -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2198, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2210, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ReturnStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2200, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2207, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2207, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2207, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXFoldExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2216, -// CHECK-NEXT: "line": 119, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2224, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: {}, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2217, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2217, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Ts" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Ts..." -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: {} -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXFoldExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2229, -// CHECK-NEXT: "line": 120, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2237, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: {}, -// CHECK-NEXT: {}, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2236, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2236, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Ts" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Ts..." -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXFoldExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2242, -// CHECK-NEXT: "line": 121, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2254, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: {}, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2243, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2243, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Ts" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Ts..." -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2253, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2253, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2336, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 130, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 11 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2331, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2379, -// CHECK-NEXT: "line": 134, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestADLCall", -// CHECK-NEXT: "mangledName": "_Z11TestADLCallv", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2350, -// CHECK-NEXT: "line": 130, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2379, -// CHECK-NEXT: "line": 134, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2354, -// CHECK-NEXT: "line": 131, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2361, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2360, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2354, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2360, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NS::X" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "call", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConstructExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2360, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2360, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NS::X" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "ctorType": { -// CHECK-NEXT: "qualType": "void () noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "hadMultipleCandidates": true, -// CHECK-NEXT: "constructionKind": "complete" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2365, -// CHECK-NEXT: "line": 132, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2368, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "adl": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2365, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2365, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (*)(X)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "FunctionToPointerDecay", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2365, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2365, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (X)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "f", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (X)" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConstructExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2367, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2367, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "NS::X", -// CHECK-NEXT: "qualType": "X" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "ctorType": { -// CHECK-NEXT: "qualType": "void (const X &) noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "hadMultipleCandidates": true, -// CHECK-NEXT: "constructionKind": "complete", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2367, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2367, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "const NS::X", -// CHECK-NEXT: "qualType": "const X" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "castKind": "NoOp", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2367, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2367, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NS::X" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NS::X" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2373, -// CHECK-NEXT: "line": 133, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2376, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "adl": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2373, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2373, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (*)(...)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "FunctionToPointerDecay", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2373, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2373, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (...)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "y", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (...)" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConstructExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2375, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2375, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NS::X" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "ctorType": { -// CHECK-NEXT: "qualType": "void (const X &) noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "hadMultipleCandidates": true, -// CHECK-NEXT: "constructionKind": "complete", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2375, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2375, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "const NS::X", -// CHECK-NEXT: "qualType": "const X" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "castKind": "NoOp", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2375, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2375, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NS::X" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NS::X" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2387, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 136, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 14 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2382, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2429, -// CHECK-NEXT: "line": 139, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestNonADLCall", -// CHECK-NEXT: "mangledName": "_Z14TestNonADLCallv", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2404, -// CHECK-NEXT: "line": 136, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2429, -// CHECK-NEXT: "line": 139, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2408, -// CHECK-NEXT: "line": 137, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2415, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2414, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2408, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2414, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NS::X" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "call", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConstructExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2414, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2414, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NS::X" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "ctorType": { -// CHECK-NEXT: "qualType": "void () noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "hadMultipleCandidates": true, -// CHECK-NEXT: "constructionKind": "complete" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2419, -// CHECK-NEXT: "line": 138, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2426, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2419, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2423, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (*)(X)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "FunctionToPointerDecay", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2419, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2423, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (X)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "f", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (X)" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConstructExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2425, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2425, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "NS::X", -// CHECK-NEXT: "qualType": "X" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "ctorType": { -// CHECK-NEXT: "qualType": "void (const X &) noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "hadMultipleCandidates": true, -// CHECK-NEXT: "constructionKind": "complete", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2425, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2425, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "const NS::X", -// CHECK-NEXT: "qualType": "const X" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "castKind": "NoOp", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2425, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2425, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NS::X" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NS::X" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2437, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 141, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 15 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2432, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2499, -// CHECK-NEXT: "line": 146, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestNonADLCall2", -// CHECK-NEXT: "mangledName": "_Z15TestNonADLCall2v", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2455, -// CHECK-NEXT: "line": 141, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2499, -// CHECK-NEXT: "line": 146, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2459, -// CHECK-NEXT: "line": 142, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2466, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2465, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2459, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2465, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NS::X" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "call", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConstructExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2465, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2465, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NS::X" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "ctorType": { -// CHECK-NEXT: "qualType": "void () noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "hadMultipleCandidates": true, -// CHECK-NEXT: "constructionKind": "complete" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2470, -// CHECK-NEXT: "line": 143, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2481, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UsingDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2480, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2470, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2480, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "NS::f" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2485, -// CHECK-NEXT: "line": 144, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2488, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2485, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2485, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (*)(X)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "FunctionToPointerDecay", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2485, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2485, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (X)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "f", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (X)" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "foundReferencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UsingShadowDecl", -// CHECK-NEXT: "name": "f" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConstructExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2487, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2487, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "NS::X", -// CHECK-NEXT: "qualType": "X" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "ctorType": { -// CHECK-NEXT: "qualType": "void (const X &) noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "hadMultipleCandidates": true, -// CHECK-NEXT: "constructionKind": "complete", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2487, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2487, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "const NS::X", -// CHECK-NEXT: "qualType": "const X" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "castKind": "NoOp", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2487, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2487, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NS::X" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NS::X" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2493, -// CHECK-NEXT: "line": 145, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2496, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "adl": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2493, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2493, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (*)(...)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "FunctionToPointerDecay", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2493, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2493, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (...)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "y", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (...)" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConstructExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2495, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2495, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NS::X" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "ctorType": { -// CHECK-NEXT: "qualType": "void (const X &) noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "hadMultipleCandidates": true, -// CHECK-NEXT: "constructionKind": "complete", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2495, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2495, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "const NS::X", -// CHECK-NEXT: "qualType": "const X" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "castKind": "NoOp", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2495, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2495, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NS::X" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NS::X" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2559, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 150, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 15 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2554, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2594, -// CHECK-NEXT: "line": 153, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestNonADLCall3", -// CHECK-NEXT: "mangledName": "_ZN19test_adl_call_three15TestNonADLCall3Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2577, -// CHECK-NEXT: "line": 150, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2594, -// CHECK-NEXT: "line": 153, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2581, -// CHECK-NEXT: "line": 151, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2584, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 2583, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2581, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2583, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "NS::X", -// CHECK-NEXT: "qualType": "X" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "call", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConstructExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2583, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2583, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "NS::X", -// CHECK-NEXT: "qualType": "X" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "ctorType": { -// CHECK-NEXT: "qualType": "void () noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "hadMultipleCandidates": true, -// CHECK-NEXT: "constructionKind": "complete" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2588, -// CHECK-NEXT: "line": 152, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2591, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2588, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2588, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (*)(X)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "FunctionToPointerDecay", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2588, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2588, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (X)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "f", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (X)" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConstructExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2590, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2590, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "NS::X", -// CHECK-NEXT: "qualType": "X" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "ctorType": { -// CHECK-NEXT: "qualType": "void (const X &) noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "hadMultipleCandidates": true, -// CHECK-NEXT: "constructionKind": "complete", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2590, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2590, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "const NS::X", -// CHECK-NEXT: "qualType": "const X" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "castKind": "NoOp", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 2590, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 2590, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "NS::X", -// CHECK-NEXT: "qualType": "X" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "NS::X", -// CHECK-NEXT: "qualType": "X" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -Wno-unused-value -fcxx-exceptions -std=gnu++17 -ast-dump=json -ast-dump-filter Test %s | FileCheck %s + +namespace std { +using size_t = decltype(sizeof(0)); + +class type_info { +public: + virtual ~type_info(); + bool operator==(const type_info& rhs) const noexcept; + bool operator!=(const type_info& rhs) const noexcept; + type_info(const type_info& rhs) = delete; // cannot be copied + type_info& operator=(const type_info& rhs) = delete; // cannot be copied +}; + +class bad_typeid { +public: + bad_typeid() noexcept; + bad_typeid(const bad_typeid&) noexcept; + virtual ~bad_typeid(); + bad_typeid& operator=(const bad_typeid&) noexcept; + const char* what() const noexcept; +}; +} // namespace std +void *operator new(std::size_t, void *ptr); + +struct S { + virtual ~S() = default; + + void func(int); + template + Ty foo(); + + int i; +}; + +struct T : S {}; + +template +struct U {}; + +void TestThrow() { + throw 12; + throw; +} + +void TestPointerToMember(S obj1, S *obj2, int S::* data, void (S::*call)(int)) { + obj1.*data; + obj2->*data; + (obj1.*call)(12); + (obj2->*call)(12); +} + +void TestCasting(const S *s) { + const_cast(s); + static_cast(s); + dynamic_cast(s); + reinterpret_cast(s); +} + +template +void TestUnaryExpressions(int *p) { + sizeof...(Ts); + noexcept(p - p); + + ::new int; + new (int); + new int{12}; + new int[2]; + new int[2]{1, 2}; + new (p) int; + new (p) int{12}; + + ::delete p; + delete [] p; +} + +void TestPostfixExpressions(S a, S *p, U *r) { + a.func(0); + p->func(0); + p->template foo(); + a.template foo(); + p->~S(); + a.~S(); + a.~decltype(a)(); + p->::S::~S(); + r->template U::~U(); + typeid(a); + typeid(S); + typeid(const volatile S); +} + +template +void TestPrimaryExpressions(Ts... a) { + struct V { + void f() { + this; + + [this]{}; + [*this]{}; + } + }; + + int b, c; + + [](){}; + [](int a, ...){}; + [a...]{}; + [=]{}; + [=] { return b; }; + [&]{}; + [&] { return c; }; + [b, &c]{ return b + c; }; + [a..., x = 12]{}; + []() constexpr {}; + []() mutable {}; + []() noexcept {}; + []() -> int { return 0; }; + + (a + ...); + (... + a); + (a + ... + b); +} + +namespace NS { +struct X {}; +void f(X); +void y(...); +} // namespace NS + +void TestADLCall() { + NS::X x; + f(x); + y(x); +} + +void TestNonADLCall() { + NS::X x; + NS::f(x); +} + +void TestNonADLCall2() { + NS::X x; + using NS::f; + f(x); + y(x); +} + +namespace test_adl_call_three { +using namespace NS; +void TestNonADLCall3() { + X x; + f(x); +} +} // namespace test_adl_call_three + +// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 992, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 41, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 9 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 987, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1030, +// CHECK-NEXT: "line": 44, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestThrow", +// CHECK-NEXT: "mangledName": "_Z9TestThrowv", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1004, +// CHECK-NEXT: "line": 41, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1030, +// CHECK-NEXT: "line": 44, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXThrowExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1009, +// CHECK-NEXT: "line": 42, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1015, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1015, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1015, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXThrowExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1022, +// CHECK-NEXT: "line": 43, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1022, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1040, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 46, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1035, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1191, +// CHECK-NEXT: "line": 51, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestPointerToMember", +// CHECK-NEXT: "mangledName": "_Z19TestPointerToMember1SPS_MS_iMS_FviE", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (S, S *, int S::*, void (S::*)(int))" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1062, +// CHECK-NEXT: "line": 46, +// CHECK-NEXT: "col": 28, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1060, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1062, +// CHECK-NEXT: "col": 28, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "obj1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1071, +// CHECK-NEXT: "col": 37, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1068, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1071, +// CHECK-NEXT: "col": 37, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "obj2", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1086, +// CHECK-NEXT: "col": 52, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1077, +// CHECK-NEXT: "col": 43, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1086, +// CHECK-NEXT: "col": 52, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "data", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int S::*" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MemberPointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int S::*" +// CHECK-NEXT: }, +// CHECK-NEXT: "isData": true, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1102, +// CHECK-NEXT: "col": 68, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1092, +// CHECK-NEXT: "col": 58, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1111, +// CHECK-NEXT: "col": 77, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "call", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (S::*)(int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MemberPointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (S::*)(int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "isFunction": true, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParenType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionProtoType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "cc": "cdecl", +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "void" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "cc": "cdecl", +// CHECK-NEXT: "returnTypeDetail": { +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "void" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1114, +// CHECK-NEXT: "col": 80, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1191, +// CHECK-NEXT: "line": 51, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1119, +// CHECK-NEXT: "line": 47, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1125, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "opcode": ".*", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1119, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1119, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "obj1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1125, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1125, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int S::*" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1125, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1125, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int S::*" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "data", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int S::*" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1134, +// CHECK-NEXT: "line": 48, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1141, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "opcode": "->*", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1134, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1134, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1134, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1134, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "obj2", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1141, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1141, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int S::*" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1141, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1141, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int S::*" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "data", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int S::*" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMemberCallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1150, +// CHECK-NEXT: "line": 49, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1165, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParenExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1150, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1161, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1151, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1157, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": ".*", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1151, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1151, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "obj1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1157, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1157, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (S::*)(int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1157, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1157, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (S::*)(int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "call", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (S::*)(int)" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1163, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1163, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMemberCallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1171, +// CHECK-NEXT: "line": 50, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1187, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParenExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1171, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1183, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1172, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1179, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "->*", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1172, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1172, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1172, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1172, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "obj2", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1179, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1179, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (S::*)(int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1179, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1179, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (S::*)(int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "call", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (S::*)(int)" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1185, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1185, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1201, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 53, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 11 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1196, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1349, +// CHECK-NEXT: "line": 58, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestCasting", +// CHECK-NEXT: "mangledName": "_Z11TestCastingPK1S", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (const S *)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1222, +// CHECK-NEXT: "line": 53, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1213, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1222, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "s", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualTypeDetail": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "const", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1225, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1349, +// CHECK-NEXT: "line": 58, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConstCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1230, +// CHECK-NEXT: "line": 54, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1247, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NoOp", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1246, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1246, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "isPartOfExplicitCast": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1246, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1246, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "s", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXStaticCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1253, +// CHECK-NEXT: "line": 55, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 11 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1277, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const T *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "BaseToDerived", +// CHECK-NEXT: "path": [ +// CHECK-NEXT: { +// CHECK-NEXT: "name": "S" +// CHECK-NEXT: } +// CHECK-NEXT: ], +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1276, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1276, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "isPartOfExplicitCast": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1276, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1276, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "s", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDynamicCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1283, +// CHECK-NEXT: "line": 56, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 12 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1308, +// CHECK-NEXT: "col": 28, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const T *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "Dynamic", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1307, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1307, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "isPartOfExplicitCast": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1307, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1307, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "s", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXReinterpretCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1314, +// CHECK-NEXT: "line": 57, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1345, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "BitCast", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1344, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1344, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "isPartOfExplicitCast": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1344, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1344, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "s", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const S *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionTemplateDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1386, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 61, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 20 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1354, +// CHECK-NEXT: "line": 60, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1607, +// CHECK-NEXT: "line": 75, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestUnaryExpressions", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1376, +// CHECK-NEXT: "line": 60, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1364, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1376, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "Ts", +// CHECK-NEXT: "tagUsed": "typename", +// CHECK-NEXT: "depth": 0, +// CHECK-NEXT: "index": 0, +// CHECK-NEXT: "isParameterPack": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1386, +// CHECK-NEXT: "line": 61, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 20 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1381, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1607, +// CHECK-NEXT: "line": 75, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestUnaryExpressions", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int *)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1412, +// CHECK-NEXT: "line": 61, +// CHECK-NEXT: "col": 32, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1407, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1412, +// CHECK-NEXT: "col": 32, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "p", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1415, +// CHECK-NEXT: "col": 35, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1607, +// CHECK-NEXT: "line": 75, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "SizeOfPackExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1420, +// CHECK-NEXT: "line": 62, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1432, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "__size_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "name": "Ts" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXNoexceptExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1438, +// CHECK-NEXT: "line": 63, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1452, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1447, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1451, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "long", +// CHECK-NEXT: "qualType": "__ptrdiff_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "-", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1447, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1447, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1447, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1447, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "p", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "nonOdrUseReason": "unevaluated", +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1451, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1451, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1451, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1451, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "p", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "nonOdrUseReason": "unevaluated", +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXNewExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1460, +// CHECK-NEXT: "line": 65, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1466, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isGlobal": true, +// CHECK-NEXT: "operatorNewDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "operator new", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *(__size_t)" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXNewExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1474, +// CHECK-NEXT: "line": 66, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1482, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "operatorNewDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "operator new", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *(__size_t)" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXNewExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1488, +// CHECK-NEXT: "line": 67, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1498, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "initStyle": "list", +// CHECK-NEXT: "operatorNewDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "operator new", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *(__size_t)" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "InitListExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1495, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1498, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1496, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1496, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXNewExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1504, +// CHECK-NEXT: "line": 68, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1513, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isArray": true, +// CHECK-NEXT: "operatorNewDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "operator new[]", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *(__size_t)" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1512, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1512, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "__size_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralCast", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1512, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1512, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "2" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXNewExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1519, +// CHECK-NEXT: "line": 69, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1534, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isArray": true, +// CHECK-NEXT: "initStyle": "list", +// CHECK-NEXT: "operatorNewDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "operator new[]", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *(__size_t)" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1527, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1527, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "__size_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralCast", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1527, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1527, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "2" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "InitListExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1529, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1534, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[2]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1530, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1530, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1533, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1533, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "2" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXNewExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1540, +// CHECK-NEXT: "line": 70, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1548, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isPlacement": true, +// CHECK-NEXT: "operatorNewDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "operator new", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *(std::size_t, void *)" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1545, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1545, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "BitCast", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1545, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1545, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1545, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1545, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "p", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXNewExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1556, +// CHECK-NEXT: "line": 71, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1570, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isPlacement": true, +// CHECK-NEXT: "initStyle": "list", +// CHECK-NEXT: "operatorNewDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "operator new", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *(std::size_t, void *)" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "InitListExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1567, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1570, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1568, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1568, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1561, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1561, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "BitCast", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1561, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1561, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1561, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1561, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "p", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDeleteExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1578, +// CHECK-NEXT: "line": 73, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1587, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isGlobal": true, +// CHECK-NEXT: "operatorDeleteDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "operator delete", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (void *, __size_t) noexcept" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1587, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1587, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1587, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1587, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "p", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDeleteExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1593, +// CHECK-NEXT: "line": 74, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1603, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isArray": true, +// CHECK-NEXT: "isArrayAsWritten": true, +// CHECK-NEXT: "operatorDeleteDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "operator delete[]", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (void *) noexcept" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1603, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1603, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1603, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1603, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "p", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1617, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 77, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 22 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1612, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1896, +// CHECK-NEXT: "line": 90, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestPostfixExpressions", +// CHECK-NEXT: "mangledName": "_Z22TestPostfixExpressions1SPS_P1UIiE", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (S, S *, U *)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1642, +// CHECK-NEXT: "line": 77, +// CHECK-NEXT: "col": 31, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1640, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1642, +// CHECK-NEXT: "col": 31, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1648, +// CHECK-NEXT: "col": 37, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1645, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1648, +// CHECK-NEXT: "col": 37, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "p", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1659, +// CHECK-NEXT: "col": 48, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1651, +// CHECK-NEXT: "col": 40, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1659, +// CHECK-NEXT: "col": 48, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "r", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "U *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "U *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "U" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateSpecializationType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "U" +// CHECK-NEXT: }, +// CHECK-NEXT: "templateName": "U", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "kind": "TemplateArgument", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "U" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ClassTemplateSpecializationDecl", +// CHECK-NEXT: "name": "U" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1662, +// CHECK-NEXT: "col": 51, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1896, +// CHECK-NEXT: "line": 90, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMemberCallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1667, +// CHECK-NEXT: "line": 78, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1675, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MemberExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1667, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1669, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "name": "func", +// CHECK-NEXT: "isArrow": false, +// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1667, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1667, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1674, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1674, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMemberCallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1681, +// CHECK-NEXT: "line": 79, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1690, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MemberExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1681, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1684, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "name": "func", +// CHECK-NEXT: "isArrow": true, +// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1681, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1681, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1681, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1681, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "p", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1689, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1689, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMemberCallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1696, +// CHECK-NEXT: "line": 80, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1717, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MemberExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1696, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1715, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "name": "foo", +// CHECK-NEXT: "isArrow": true, +// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1696, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1696, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1696, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1696, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "p", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMemberCallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1723, +// CHECK-NEXT: "line": 81, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1745, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MemberExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1723, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1743, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "name": "foo", +// CHECK-NEXT: "isArrow": false, +// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1723, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1723, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMemberCallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1751, +// CHECK-NEXT: "line": 82, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1757, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MemberExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1751, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1755, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "name": "~S", +// CHECK-NEXT: "isArrow": true, +// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1751, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1751, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1751, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1751, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "p", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMemberCallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1763, +// CHECK-NEXT: "line": 83, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1768, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MemberExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1763, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1766, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "name": "~S", +// CHECK-NEXT: "isArrow": false, +// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1763, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1763, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMemberCallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1774, +// CHECK-NEXT: "line": 84, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1789, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MemberExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1774, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1776, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "name": "~S", +// CHECK-NEXT: "isArrow": false, +// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1774, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1774, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMemberCallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1795, +// CHECK-NEXT: "line": 85, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MemberExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1795, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1804, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "name": "~S", +// CHECK-NEXT: "isArrow": true, +// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1795, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1795, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1795, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1795, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "p", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMemberCallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1812, +// CHECK-NEXT: "line": 86, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1835, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MemberExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1812, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1833, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "name": "~U", +// CHECK-NEXT: "isArrow": true, +// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1812, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1812, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "U *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1812, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1812, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "U *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "r", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "U *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXTypeidExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1841, +// CHECK-NEXT: "line": 87, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1849, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const std::type_info" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1848, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1848, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXTypeidExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1855, +// CHECK-NEXT: "line": 88, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1863, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const std::type_info" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "typeArg": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXTypeidExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1869, +// CHECK-NEXT: "line": 89, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1892, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const std::type_info" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "typeArg": { +// CHECK-NEXT: "qualType": "const volatile S" +// CHECK-NEXT: }, +// CHECK-NEXT: "adjustedTypeArg": { +// CHECK-NEXT: "qualType": "S" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionTemplateDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1933, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 93, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 22 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1901, +// CHECK-NEXT: "line": 92, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2378, +// CHECK-NEXT: "line": 122, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestPrimaryExpressions", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1923, +// CHECK-NEXT: "line": 92, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1911, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1923, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "Ts", +// CHECK-NEXT: "tagUsed": "typename", +// CHECK-NEXT: "depth": 0, +// CHECK-NEXT: "index": 0, +// CHECK-NEXT: "isParameterPack": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1933, +// CHECK-NEXT: "line": 93, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 22 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1928, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2378, +// CHECK-NEXT: "line": 122, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestPrimaryExpressions", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (Ts...)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1962, +// CHECK-NEXT: "line": 93, +// CHECK-NEXT: "col": 35, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1956, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1962, +// CHECK-NEXT: "col": 35, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Ts..." +// CHECK-NEXT: }, +// CHECK-NEXT: "isParameterPack": true, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PackExpansionType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Ts..." +// CHECK-NEXT: }, +// CHECK-NEXT: "isDependent": true, +// CHECK-NEXT: "isInstantiationDependent": true, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Ts" +// CHECK-NEXT: }, +// CHECK-NEXT: "isDependent": true, +// CHECK-NEXT: "isInstantiationDependent": true, +// CHECK-NEXT: "containsUnexpandedPack": true, +// CHECK-NEXT: "depth": 0, +// CHECK-NEXT: "index": 0, +// CHECK-NEXT: "isPack": true, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmDecl", +// CHECK-NEXT: "name": "Ts" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1965, +// CHECK-NEXT: "col": 38, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2378, +// CHECK-NEXT: "line": 122, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1970, +// CHECK-NEXT: "line": 94, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2058, +// CHECK-NEXT: "line": 101, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1977, +// CHECK-NEXT: "line": 94, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1970, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2057, +// CHECK-NEXT: "line": 101, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "V", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1977, +// CHECK-NEXT: "line": 94, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1970, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1977, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "V", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1991, +// CHECK-NEXT: "line": 95, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1986, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2052, +// CHECK-NEXT: "line": 100, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "f", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1995, +// CHECK-NEXT: "line": 95, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2052, +// CHECK-NEXT: "line": 100, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXThisExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2004, +// CHECK-NEXT: "line": 96, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2004, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "V *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LambdaExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2019, +// CHECK-NEXT: "line": 98, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2026, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "(lambda at {{.*}}:98:7)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2019, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2019, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2019, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "tagUsed": "class", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": {}, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isLambda": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": {}, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2019, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2024, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2026, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "operator()", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto () const -> auto" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2025, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2026, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2020, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2020, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2020, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "V *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "V *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "V" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParenListExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2020, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2020, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NULL TYPE" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXThisExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2020, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2020, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "V *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2025, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2026, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LambdaExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2036, +// CHECK-NEXT: "line": 99, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2044, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "(lambda at {{.*}}:99:7)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2036, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2036, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2036, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "tagUsed": "class", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isLambda": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": {}, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2036, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2042, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2044, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "operator()", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto () const -> auto" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2043, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2044, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2037, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2037, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2037, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "V" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParenListExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2037, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2037, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NULL TYPE" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2037, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2037, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "V" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "*", +// CHECK-NEXT: "canOverflow": false, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXThisExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2037, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2037, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "V *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2043, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2044, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2065, +// CHECK-NEXT: "line": 103, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2073, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2069, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2065, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2069, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2072, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2065, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2072, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "c", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LambdaExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2080, +// CHECK-NEXT: "line": 105, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2085, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "(lambda at {{.*}}:105:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2080, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2080, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2080, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "tagUsed": "class", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLambda": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": {}, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2080, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2083, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2085, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "operator()", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto () const" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2084, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2085, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConversionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2080, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2080, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2085, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator auto (*)()", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto (*() const noexcept)()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2080, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2080, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2085, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__invoke", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "storageClass": "static", +// CHECK-NEXT: "inline": true +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2084, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2085, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LambdaExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2091, +// CHECK-NEXT: "line": 106, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2106, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "(lambda at {{.*}}:106:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2091, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2091, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2091, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "tagUsed": "class", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLambda": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": {}, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2091, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2106, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "operator()", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto (int, ...) const" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "variadic": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2098, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2094, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2098, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2105, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2106, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConversionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2091, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2091, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2106, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator auto (*)(int, ...)", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto (*() const noexcept)(int, ...)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2091, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2091, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2106, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__invoke", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto (int, ...)" +// CHECK-NEXT: }, +// CHECK-NEXT: "storageClass": "static", +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "variadic": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2098, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2094, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2098, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2105, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2106, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LambdaExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2112, +// CHECK-NEXT: "line": 107, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2119, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "(lambda at {{.*}}:107:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2112, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2112, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2112, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "tagUsed": "class", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": {}, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isLambda": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": {}, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2112, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2117, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2119, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "operator()", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto () const -> auto" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2118, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2119, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2113, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2113, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2113, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Ts..." +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParenListExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2113, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2113, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NULL TYPE" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2113, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2113, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Ts" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Ts..." +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2118, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2119, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LambdaExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2125, +// CHECK-NEXT: "line": 108, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2129, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "(lambda at {{.*}}:108:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2125, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2125, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2125, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "tagUsed": "class", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLambda": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": {}, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2125, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2127, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2129, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "operator()", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto () const -> auto" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2128, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2129, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2128, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2129, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LambdaExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "line": 109, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2151, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "(lambda at {{.*}}:109:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "tagUsed": "class", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLambda": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": {}, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2137, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2151, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "operator()", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto () const -> auto" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2139, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2151, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ReturnStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2141, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2148, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2148, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2148, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "const", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2139, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2151, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ReturnStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2141, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2148, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2148, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2148, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LambdaExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2157, +// CHECK-NEXT: "line": 110, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2161, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "(lambda at {{.*}}:110:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2157, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2157, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2157, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "tagUsed": "class", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLambda": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": {}, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2157, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2159, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2161, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "operator()", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto () const -> auto" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2160, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2161, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2160, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2161, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LambdaExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2167, +// CHECK-NEXT: "line": 111, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2183, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "(lambda at {{.*}}:111:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2167, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2167, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2167, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "tagUsed": "class", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLambda": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": {}, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2167, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2169, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2183, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "operator()", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto () const -> auto" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2171, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2183, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ReturnStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2173, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2180, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2180, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2180, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "c", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2171, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2183, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ReturnStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2173, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2180, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2180, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2180, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "c", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LambdaExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2189, +// CHECK-NEXT: "line": 112, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2212, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "(lambda at {{.*}}:112:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2189, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2189, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2189, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "tagUsed": "class", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": {}, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isLambda": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": {}, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2189, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2195, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2212, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "operator()", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto () const -> auto" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2196, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2212, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ReturnStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2198, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2209, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2205, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2209, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "+", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2205, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2205, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2205, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2205, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2209, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2209, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2209, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2209, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "c", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2190, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2190, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2190, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2194, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2194, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2194, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int &" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int &" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2190, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2190, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2190, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2190, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2194, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2194, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "c", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2196, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2212, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ReturnStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2198, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2209, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2205, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2209, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "+", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2205, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2205, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2205, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2205, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2209, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2209, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2209, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2209, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "c", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LambdaExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2218, +// CHECK-NEXT: "line": 113, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2233, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "(lambda at {{.*}}:113:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2218, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2218, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2218, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "tagUsed": "class", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": {}, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isLambda": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": {}, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2218, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2231, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2233, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "operator()", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto () const -> auto" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2232, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2233, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2219, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2219, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2219, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Ts..." +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2225, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2225, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2225, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParenListExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2219, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2219, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NULL TYPE" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2219, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2219, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Ts" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Ts..." +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2229, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2229, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2232, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2233, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LambdaExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2239, +// CHECK-NEXT: "line": 114, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2255, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "(lambda at {{.*}}:114:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2239, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2239, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2239, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "tagUsed": "class", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLambda": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": {}, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2239, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2244, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 9 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2255, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "operator()", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto () const" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2254, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2255, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConversionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2239, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2239, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2255, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator auto (*)()", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto (*() const noexcept)()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2239, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2239, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2255, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__invoke", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "storageClass": "static", +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2254, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2255, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LambdaExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2261, +// CHECK-NEXT: "line": 115, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2275, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "(lambda at {{.*}}:115:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2261, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2261, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2261, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "tagUsed": "class", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLambda": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": {}, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2261, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2266, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 7 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2275, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "operator()", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2274, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2275, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConversionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2261, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2261, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2275, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator auto (*)()", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto (*() const noexcept)()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2261, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2261, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2275, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__invoke", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "storageClass": "static", +// CHECK-NEXT: "inline": true +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2274, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2275, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LambdaExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2281, +// CHECK-NEXT: "line": 116, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2296, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "(lambda at {{.*}}:116:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2281, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2281, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2281, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "tagUsed": "class", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLambda": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": {}, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2281, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2286, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2296, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "operator()", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto () const noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2295, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2296, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConversionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2281, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2281, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2296, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator auto (*)() noexcept", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto (*() const noexcept)() noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2281, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2281, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2296, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__invoke", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto () noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "storageClass": "static", +// CHECK-NEXT: "inline": true +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2295, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2296, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LambdaExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2302, +// CHECK-NEXT: "line": 117, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2326, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "(lambda at {{.*}}:117:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2302, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2302, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2302, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "tagUsed": "class", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLambda": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": {}, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2302, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2310, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2326, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "operator()", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto () const -> int" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2314, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2326, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ReturnStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2316, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2323, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2323, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2323, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConversionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2302, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2302, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2326, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator int (*)()", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto (*() const noexcept)() -> int" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2302, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2302, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2326, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__invoke", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto () -> int" +// CHECK-NEXT: }, +// CHECK-NEXT: "storageClass": "static", +// CHECK-NEXT: "inline": true +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2314, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2326, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ReturnStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2316, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2323, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2323, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2323, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXFoldExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2334, +// CHECK-NEXT: "line": 119, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2342, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: {}, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2335, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2335, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Ts" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Ts..." +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: {} +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXFoldExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2348, +// CHECK-NEXT: "line": 120, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2356, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: {}, +// CHECK-NEXT: {}, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2355, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2355, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Ts" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Ts..." +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXFoldExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2362, +// CHECK-NEXT: "line": 121, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2374, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: {}, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2363, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2363, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Ts" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Ts..." +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2373, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2373, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2465, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 130, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 11 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2460, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2512, +// CHECK-NEXT: "line": 134, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestADLCall", +// CHECK-NEXT: "mangledName": "_Z11TestADLCallv", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2479, +// CHECK-NEXT: "line": 130, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2512, +// CHECK-NEXT: "line": 134, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2484, +// CHECK-NEXT: "line": 131, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2491, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2490, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2484, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2490, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "call", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConstructExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2490, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2490, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "ctorType": { +// CHECK-NEXT: "qualType": "void () noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "hadMultipleCandidates": true, +// CHECK-NEXT: "constructionKind": "complete" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifier": "NS::", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "X" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2496, +// CHECK-NEXT: "line": 132, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2499, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "adl": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2496, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2496, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (*)(X)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "FunctionToPointerDecay", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2496, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2496, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (X)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "f", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (X)" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (X)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConstructExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2498, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2498, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "NS::X", +// CHECK-NEXT: "qualType": "X" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "ctorType": { +// CHECK-NEXT: "qualType": "void (const X &) noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "hadMultipleCandidates": true, +// CHECK-NEXT: "constructionKind": "complete", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2498, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2498, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "const NS::X", +// CHECK-NEXT: "qualType": "const X" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "castKind": "NoOp", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2498, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2498, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2505, +// CHECK-NEXT: "line": 133, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2508, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "adl": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2505, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2505, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (*)(...)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "FunctionToPointerDecay", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2505, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2505, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (...)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "y", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (...)" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (...)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConstructExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2507, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2507, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "ctorType": { +// CHECK-NEXT: "qualType": "void (const X &) noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "hadMultipleCandidates": true, +// CHECK-NEXT: "constructionKind": "complete", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2507, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2507, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "const NS::X", +// CHECK-NEXT: "qualType": "const X" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "castKind": "NoOp", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2507, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2507, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2522, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 136, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 14 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2517, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2567, +// CHECK-NEXT: "line": 139, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestNonADLCall", +// CHECK-NEXT: "mangledName": "_Z14TestNonADLCallv", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2539, +// CHECK-NEXT: "line": 136, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2567, +// CHECK-NEXT: "line": 139, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2544, +// CHECK-NEXT: "line": 137, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2551, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2550, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2544, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2550, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "call", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConstructExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2550, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2550, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "ctorType": { +// CHECK-NEXT: "qualType": "void () noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "hadMultipleCandidates": true, +// CHECK-NEXT: "constructionKind": "complete" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifier": "NS::", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "X" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2556, +// CHECK-NEXT: "line": 138, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2563, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2556, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2560, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (*)(X)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "FunctionToPointerDecay", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2556, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2560, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (X)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "f", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (X)" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (X)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConstructExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2562, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2562, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "NS::X", +// CHECK-NEXT: "qualType": "X" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "ctorType": { +// CHECK-NEXT: "qualType": "void (const X &) noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "hadMultipleCandidates": true, +// CHECK-NEXT: "constructionKind": "complete", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2562, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2562, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "const NS::X", +// CHECK-NEXT: "qualType": "const X" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "castKind": "NoOp", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2562, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2562, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2577, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 141, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 15 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2572, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2644, +// CHECK-NEXT: "line": 146, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestNonADLCall2", +// CHECK-NEXT: "mangledName": "_Z15TestNonADLCall2v", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2595, +// CHECK-NEXT: "line": 141, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2644, +// CHECK-NEXT: "line": 146, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2600, +// CHECK-NEXT: "line": 142, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2607, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2606, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2600, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2606, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "call", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConstructExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2606, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2606, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "ctorType": { +// CHECK-NEXT: "qualType": "void () noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "hadMultipleCandidates": true, +// CHECK-NEXT: "constructionKind": "complete" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifier": "NS::", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "X" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2612, +// CHECK-NEXT: "line": 143, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2623, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UsingDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2622, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2612, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2622, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "NS::f" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2628, +// CHECK-NEXT: "line": 144, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2631, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2628, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2628, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (*)(X)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "FunctionToPointerDecay", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2628, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2628, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (X)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "f", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (X)" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "foundReferencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UsingShadowDecl", +// CHECK-NEXT: "name": "f" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (X)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConstructExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2630, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2630, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "NS::X", +// CHECK-NEXT: "qualType": "X" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "ctorType": { +// CHECK-NEXT: "qualType": "void (const X &) noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "hadMultipleCandidates": true, +// CHECK-NEXT: "constructionKind": "complete", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2630, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2630, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "const NS::X", +// CHECK-NEXT: "qualType": "const X" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "castKind": "NoOp", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2630, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2630, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2637, +// CHECK-NEXT: "line": 145, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2640, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "adl": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2637, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2637, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (*)(...)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "FunctionToPointerDecay", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2637, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2637, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (...)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "y", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (...)" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (...)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConstructExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2639, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2639, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "ctorType": { +// CHECK-NEXT: "qualType": "void (const X &) noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "hadMultipleCandidates": true, +// CHECK-NEXT: "constructionKind": "complete", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2639, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2639, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "const NS::X", +// CHECK-NEXT: "qualType": "const X" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "castKind": "NoOp", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2639, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2639, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2708, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 150, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 15 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2703, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2746, +// CHECK-NEXT: "line": 153, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestNonADLCall3", +// CHECK-NEXT: "mangledName": "_ZN19test_adl_call_three15TestNonADLCall3Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2726, +// CHECK-NEXT: "line": 150, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2746, +// CHECK-NEXT: "line": 153, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2731, +// CHECK-NEXT: "line": 151, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2734, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2733, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2731, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2733, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "NS::X", +// CHECK-NEXT: "qualType": "X" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "call", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConstructExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2733, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2733, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "NS::X", +// CHECK-NEXT: "qualType": "X" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "ctorType": { +// CHECK-NEXT: "qualType": "void () noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "hadMultipleCandidates": true, +// CHECK-NEXT: "constructionKind": "complete" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "X" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NS::X" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "X" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2739, +// CHECK-NEXT: "line": 152, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2742, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2739, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2739, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (*)(X)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "FunctionToPointerDecay", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2739, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2739, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (X)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "f", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (X)" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (X)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConstructExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2741, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2741, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "NS::X", +// CHECK-NEXT: "qualType": "X" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "ctorType": { +// CHECK-NEXT: "qualType": "void (const X &) noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "hadMultipleCandidates": true, +// CHECK-NEXT: "constructionKind": "complete", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2741, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2741, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "const NS::X", +// CHECK-NEXT: "qualType": "const X" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "castKind": "NoOp", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2741, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2741, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "NS::X", +// CHECK-NEXT: "qualType": "X" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "NS::X", +// CHECK-NEXT: "qualType": "X" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } diff --git a/clang/test/AST/ast-dump-expr-json.m b/clang/test/AST/ast-dump-expr-json.m index 3c502c0496308..c304e77afa832 100644 --- a/clang/test/AST/ast-dump-expr-json.m +++ b/clang/test/AST/ast-dump-expr-json.m @@ -1,5048 +1,5409 @@ -// RUN: %clang_cc1 -triple x86_64-pc-win32 -Wno-unused -fblocks -ast-dump=json -ast-dump-filter Test %s | FileCheck %s - -typedef long NSInteger; -typedef unsigned long NSUInteger; -typedef signed char BOOL; - -@interface NSNumber -@end -@interface NSNumber (NSNumberCreation) -+ (NSNumber *)numberWithChar:(char)value; -+ (NSNumber *)numberWithUnsignedChar:(unsigned char)value; -+ (NSNumber *)numberWithShort:(short)value; -+ (NSNumber *)numberWithUnsignedShort:(unsigned short)value; -+ (NSNumber *)numberWithInt:(int)value; -+ (NSNumber *)numberWithUnsignedInt:(unsigned int)value; -+ (NSNumber *)numberWithLong:(long)value; -+ (NSNumber *)numberWithUnsignedLong:(unsigned long)value; -+ (NSNumber *)numberWithLongLong:(long long)value; -+ (NSNumber *)numberWithUnsignedLongLong:(unsigned long long)value; -+ (NSNumber *)numberWithFloat:(float)value; -+ (NSNumber *)numberWithDouble:(double)value; -+ (NSNumber *)numberWithBool:(BOOL)value; -+ (NSNumber *)numberWithInteger:(NSInteger)value; -+ (NSNumber *)numberWithUnsignedInteger:(NSUInteger)value; -@end - -@interface I -{ -@public - int public; -} -- (int) conformsToProtocol : (Protocol *)protocl; -- (void)method1; -+ (void)method2; -@end - -@interface J -@property unsigned prop; -@end - -@protocol Proto -@end - -@interface NSMutableDictionary -- (id)objectForKeyedSubscript:(id)key; -- (void)setObject:(id)object forKeyedSubscript:(id)key; -@end - -@interface NSMutableArray -- (id)objectAtIndexedSubscript:(int)index; -- (void)setObject:(id)object atIndexedSubscript:(int)index; -@end - -void TestObjCEncode(void) { - @encode(int); - @encode(typeof(^{;})); -} - -void TestObjCMessage(I *Obj) { - [Obj method1]; - [I method2]; -} - -void TestObjCBoxed(void) { - @(1 + 1); -} - -void TestObjCSelector(void) { - SEL s = @selector(dealloc); -} - -void TestObjCProtocol(id Obj) { - [Obj conformsToProtocol:@protocol(Proto)]; -} - -void TestObjCPropertyRef(J *Obj) { - Obj.prop = 12; - int i = Obj.prop; -} - -void TestObjCSubscriptRef(NSMutableArray *Array, NSMutableDictionary *Dict) { - Array[0] = (void*)0; - id i = Array[0]; - - Dict[@"key"] = (void*)0; - i = Dict[@"key"]; -} - -void TestObjCIVarRef(I *Ptr) { - Ptr->public = 0; -} - -void TestObjCBoolLiteral(void) { - __objc_yes; - __objc_no; -} - -// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 54, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 14 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 57, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestObjCEncode", -// CHECK-NEXT: "mangledName": "TestObjCEncode", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (void)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 54, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 57, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 55, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "ArrayToPointerDecay", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCEncodeExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char[2]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "encodedType": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 56, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "ArrayToPointerDecay", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCEncodeExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char[3]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "encodedType": { -// CHECK-NEXT: "desugaredQualType": "void (^)(void)", -// CHECK-NEXT: "qualType": "typeof (^{ })" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 59, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 15 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 62, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestObjCMessage", -// CHECK-NEXT: "mangledName": "TestObjCMessage", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (I *)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 59, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "Obj", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "I *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 62, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMessageExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 60, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "selector": "method1", -// CHECK-NEXT: "receiverKind": "instance", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "I *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "I *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "Obj", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "I *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMessageExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 61, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "selector": "method2", -// CHECK-NEXT: "receiverKind": "class", -// CHECK-NEXT: "classType": { -// CHECK-NEXT: "qualType": "I" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 64, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 66, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestObjCBoxed", -// CHECK-NEXT: "mangledName": "TestObjCBoxed", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (void)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 64, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 66, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCBoxedExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 65, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSNumber *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "selector": "numberWithInt:", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParenExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "+", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 68, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 70, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestObjCSelector", -// CHECK-NEXT: "mangledName": "TestObjCSelector", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (void)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 68, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 70, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 69, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 28, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "s", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "SEL *", -// CHECK-NEXT: "qualType": "SEL", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCSelectorExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 28, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "SEL *", -// CHECK-NEXT: "qualType": "SEL", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "selector": "dealloc" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 72, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 74, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestObjCProtocol", -// CHECK-NEXT: "mangledName": "TestObjCProtocol", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (id)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 72, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "Obj", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 31, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 74, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMessageExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 73, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 43, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "selector": "conformsToProtocol:", -// CHECK-NEXT: "receiverKind": "instance", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "Obj", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCProtocolExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 42, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Protocol *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "protocol": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCProtocolDecl", -// CHECK-NEXT: "name": "Proto" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 76, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 79, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestObjCPropertyRef", -// CHECK-NEXT: "mangledName": "TestObjCPropertyRef", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (J *)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 76, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "Obj", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 79, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "PseudoObjectExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 77, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "unsigned int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "=", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCPropertyRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "propertyKind": "explicit", -// CHECK-NEXT: "property": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCPropertyDecl", -// CHECK-NEXT: "name": "prop" -// CHECK-NEXT: }, -// CHECK-NEXT: "isMessagingSetter": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "Obj", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "Obj", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "unsigned int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "unsigned int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralCast", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMessageExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "selector": "setProp:", -// CHECK-NEXT: "receiverKind": "instance", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "Obj", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "unsigned int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "unsigned int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralCast", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 78, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralCast", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "PseudoObjectExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "unsigned int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCPropertyRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "propertyKind": "explicit", -// CHECK-NEXT: "property": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCPropertyDecl", -// CHECK-NEXT: "name": "prop" -// CHECK-NEXT: }, -// CHECK-NEXT: "isMessagingGetter": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "Obj", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "Obj", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMessageExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "unsigned int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "selector": "prop", -// CHECK-NEXT: "receiverKind": "instance", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "Obj", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "J *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 81, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 20 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 87, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestObjCSubscriptRef", -// CHECK-NEXT: "mangledName": "TestObjCSubscriptRef", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (NSMutableArray *, NSMutableDictionary *)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 81, -// CHECK-NEXT: "col": 43, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 14 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 43, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "Array", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 71, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 50, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 71, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "Dict", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 77, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 87, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "PseudoObjectExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 82, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "=", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCSubscriptRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "subscriptKind": "array", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "Array", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CStyleCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "NullToPointer", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "Array", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CStyleCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "NullToPointer", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "NullToPointer", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CStyleCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "NullToPointer", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMessageExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "selector": "setObject:atIndexedSubscript:", -// CHECK-NEXT: "receiverKind": "instance", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "Array", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "NullToPointer", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CStyleCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "NullToPointer", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 83, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "PseudoObjectExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCSubscriptRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "subscriptKind": "array", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "Array", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "Array", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMessageExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "selector": "objectAtIndexedSubscript:", -// CHECK-NEXT: "receiverKind": "instance", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "Array", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableArray *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "PseudoObjectExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 85, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "=", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCSubscriptRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "subscriptKind": "dictionary", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "Dict", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSString *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCStringLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSString *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "StringLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char[4]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "value": "\"key\"" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CStyleCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "NullToPointer", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "Dict", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSString *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCStringLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSString *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "StringLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char[4]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "value": "\"key\"" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CStyleCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "NullToPointer", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "NullToPointer", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CStyleCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "NullToPointer", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMessageExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "selector": "setObject:forKeyedSubscript:", -// CHECK-NEXT: "receiverKind": "instance", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "Dict", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "NullToPointer", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CStyleCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "NullToPointer", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "BitCast", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSString *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCStringLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSString *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "StringLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char[4]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "value": "\"key\"" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 86, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "=", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 2, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "PseudoObjectExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCSubscriptRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "subscriptKind": "dictionary", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "Dict", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSString *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCStringLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSString *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "StringLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char[4]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "value": "\"key\"" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "Dict", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSString *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCStringLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSString *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "StringLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char[4]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "value": "\"key\"" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCMessageExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "selector": "objectForKeyedSubscript:", -// CHECK-NEXT: "receiverKind": "instance", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "Dict", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSMutableDictionary *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "id", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "BitCast", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSString *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCStringLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "NSString *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "StringLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char[4]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "value": "\"key\"" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 89, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 15 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 91, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestObjCIVarRef", -// CHECK-NEXT: "mangledName": "TestObjCIVarRef", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (I *)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 89, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "Ptr", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "I *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 91, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 90, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "=", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCIvarRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "decl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCIvarDecl", -// CHECK-NEXT: "name": "public", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isArrow": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "I *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "I *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "Ptr", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "I *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 93, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 96, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestObjCBoolLiteral", -// CHECK-NEXT: "mangledName": "TestObjCBoolLiteral", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (void)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 93, -// CHECK-NEXT: "col": 32, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 96, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCBoolLiteralExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 94, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "signed char", -// CHECK-NEXT: "qualType": "BOOL", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "__objc_yes" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCBoolLiteralExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 95, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 9 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 9 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "signed char", -// CHECK-NEXT: "qualType": "BOOL", -// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "__objc_no" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } +// RUN: %clang_cc1 -triple x86_64-pc-win32 -Wno-unused -fblocks -ast-dump=json -ast-dump-filter Test %s | FileCheck %s + +typedef long NSInteger; +typedef unsigned long NSUInteger; +typedef signed char BOOL; + +@interface NSNumber +@end +@interface NSNumber (NSNumberCreation) ++ (NSNumber *)numberWithChar:(char)value; ++ (NSNumber *)numberWithUnsignedChar:(unsigned char)value; ++ (NSNumber *)numberWithShort:(short)value; ++ (NSNumber *)numberWithUnsignedShort:(unsigned short)value; ++ (NSNumber *)numberWithInt:(int)value; ++ (NSNumber *)numberWithUnsignedInt:(unsigned int)value; ++ (NSNumber *)numberWithLong:(long)value; ++ (NSNumber *)numberWithUnsignedLong:(unsigned long)value; ++ (NSNumber *)numberWithLongLong:(long long)value; ++ (NSNumber *)numberWithUnsignedLongLong:(unsigned long long)value; ++ (NSNumber *)numberWithFloat:(float)value; ++ (NSNumber *)numberWithDouble:(double)value; ++ (NSNumber *)numberWithBool:(BOOL)value; ++ (NSNumber *)numberWithInteger:(NSInteger)value; ++ (NSNumber *)numberWithUnsignedInteger:(NSUInteger)value; +@end + +@interface I +{ +@public + int public; +} +- (int) conformsToProtocol : (Protocol *)protocl; +- (void)method1; ++ (void)method2; +@end + +@interface J +@property unsigned prop; +@end + +@protocol Proto +@end + +@interface NSMutableDictionary +- (id)objectForKeyedSubscript:(id)key; +- (void)setObject:(id)object forKeyedSubscript:(id)key; +@end + +@interface NSMutableArray +- (id)objectAtIndexedSubscript:(int)index; +- (void)setObject:(id)object atIndexedSubscript:(int)index; +@end + +void TestObjCEncode(void) { + @encode(int); + @encode(typeof(^{;})); +} + +void TestObjCMessage(I *Obj) { + [Obj method1]; + [I method2]; +} + +void TestObjCBoxed(void) { + @(1 + 1); +} + +void TestObjCSelector(void) { + SEL s = @selector(dealloc); +} + +void TestObjCProtocol(id Obj) { + [Obj conformsToProtocol:@protocol(Proto)]; +} + +void TestObjCPropertyRef(J *Obj) { + Obj.prop = 12; + int i = Obj.prop; +} + +void TestObjCSubscriptRef(NSMutableArray *Array, NSMutableDictionary *Dict) { + Array[0] = (void*)0; + id i = Array[0]; + + Dict[@"key"] = (void*)0; + i = Dict[@"key"]; +} + +void TestObjCIVarRef(I *Ptr) { + Ptr->public = 0; +} + +void TestObjCBoolLiteral(void) { + __objc_yes; + __objc_no; +} + +// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1559, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 54, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 14 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1554, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1626, +// CHECK-NEXT: "line": 57, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestObjCEncode", +// CHECK-NEXT: "mangledName": "TestObjCEncode", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (void)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1580, +// CHECK-NEXT: "line": 54, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1626, +// CHECK-NEXT: "line": 57, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1585, +// CHECK-NEXT: "line": 55, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1596, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "ArrayToPointerDecay", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCEncodeExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1585, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1596, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char[2]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "encodedType": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1602, +// CHECK-NEXT: "line": 56, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1622, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "ArrayToPointerDecay", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCEncodeExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1602, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1622, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char[3]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "encodedType": { +// CHECK-NEXT: "desugaredQualType": "void (^)(void)", +// CHECK-NEXT: "qualType": "typeof (^{ })" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1636, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 59, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 15 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1631, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1697, +// CHECK-NEXT: "line": 62, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestObjCMessage", +// CHECK-NEXT: "mangledName": "TestObjCMessage", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (I *)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1655, +// CHECK-NEXT: "line": 59, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1652, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1655, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "Obj", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "I *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCObjectPointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "I *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "I" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "name": "I" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1660, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1697, +// CHECK-NEXT: "line": 62, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMessageExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1665, +// CHECK-NEXT: "line": 60, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1677, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "selector": "method1", +// CHECK-NEXT: "receiverKind": "instance", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1666, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1666, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "I *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1666, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1666, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "I *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "Obj", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "I *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMessageExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1683, +// CHECK-NEXT: "line": 61, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1693, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "selector": "method2", +// CHECK-NEXT: "receiverKind": "class", +// CHECK-NEXT: "classType": { +// CHECK-NEXT: "qualType": "I" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1707, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 64, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1702, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1743, +// CHECK-NEXT: "line": 66, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestObjCBoxed", +// CHECK-NEXT: "mangledName": "TestObjCBoxed", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (void)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1727, +// CHECK-NEXT: "line": 64, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1743, +// CHECK-NEXT: "line": 66, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCBoxedExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1732, +// CHECK-NEXT: "line": 65, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1739, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSNumber *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "selector": "numberWithInt:", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParenExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1733, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1739, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1734, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1738, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "+", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1734, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1734, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1738, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1738, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1753, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 68, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1748, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1810, +// CHECK-NEXT: "line": 70, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestObjCSelector", +// CHECK-NEXT: "mangledName": "TestObjCSelector", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (void)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1776, +// CHECK-NEXT: "line": 68, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1810, +// CHECK-NEXT: "line": 70, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1781, +// CHECK-NEXT: "line": 69, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1807, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1785, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1781, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 28, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "s", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "SEL *", +// CHECK-NEXT: "qualType": "SEL", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCSelectorExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1789, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 28, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "SEL *", +// CHECK-NEXT: "qualType": "SEL", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "selector": "dealloc" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "SEL" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "SEL" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "name": "SEL" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "SEL *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "SEL" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1820, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 72, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1815, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1894, +// CHECK-NEXT: "line": 74, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestObjCProtocol", +// CHECK-NEXT: "mangledName": "TestObjCProtocol", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (id)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1840, +// CHECK-NEXT: "line": 72, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1837, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1840, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "Obj", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "name": "id" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCObjectPointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCObjectType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1845, +// CHECK-NEXT: "col": 31, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1894, +// CHECK-NEXT: "line": 74, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMessageExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1850, +// CHECK-NEXT: "line": 73, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1890, +// CHECK-NEXT: "col": 43, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "selector": "conformsToProtocol:", +// CHECK-NEXT: "receiverKind": "instance", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1851, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1851, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1851, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1851, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "Obj", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCProtocolExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1874, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1889, +// CHECK-NEXT: "col": 42, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Protocol *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "protocol": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCProtocolDecl", +// CHECK-NEXT: "name": "Proto" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1904, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 76, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1899, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1974, +// CHECK-NEXT: "line": 79, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestObjCPropertyRef", +// CHECK-NEXT: "mangledName": "TestObjCPropertyRef", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (J *)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1927, +// CHECK-NEXT: "line": 76, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1924, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1927, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "Obj", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCObjectPointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "name": "J" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1932, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1974, +// CHECK-NEXT: "line": 79, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PseudoObjectExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1937, +// CHECK-NEXT: "line": 77, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "unsigned int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1937, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "=", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCPropertyRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1937, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1941, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "propertyKind": "explicit", +// CHECK-NEXT: "property": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCPropertyDecl", +// CHECK-NEXT: "name": "prop" +// CHECK-NEXT: }, +// CHECK-NEXT: "isMessagingSetter": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1937, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1937, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1937, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1937, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1937, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1937, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "Obj", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1937, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1937, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1937, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1937, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1937, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1937, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "Obj", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "unsigned int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "unsigned int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralCast", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMessageExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1941, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1941, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "selector": "setProp:", +// CHECK-NEXT: "receiverKind": "instance", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1937, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1937, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1937, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1937, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1937, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1937, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "Obj", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "unsigned int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "unsigned int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralCast", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1955, +// CHECK-NEXT: "line": 78, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1971, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1959, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1955, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1967, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1963, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1967, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralCast", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PseudoObjectExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1963, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1967, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "unsigned int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCPropertyRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1963, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1967, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "propertyKind": "explicit", +// CHECK-NEXT: "property": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCPropertyDecl", +// CHECK-NEXT: "name": "prop" +// CHECK-NEXT: }, +// CHECK-NEXT: "isMessagingGetter": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1963, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1963, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1963, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1963, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1963, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1963, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "Obj", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1963, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1963, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1963, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1963, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1963, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1963, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "Obj", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMessageExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1967, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1967, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "unsigned int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "selector": "prop", +// CHECK-NEXT: "receiverKind": "instance", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1963, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1963, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1963, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1963, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1963, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1963, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "Obj", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "J *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1984, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 81, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 20 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1979, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2150, +// CHECK-NEXT: "line": 87, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestObjCSubscriptRef", +// CHECK-NEXT: "mangledName": "TestObjCSubscriptRef", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (NSMutableArray *, NSMutableDictionary *)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2021, +// CHECK-NEXT: "line": 81, +// CHECK-NEXT: "col": 43, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2005, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 14 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2021, +// CHECK-NEXT: "col": 43, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "Array", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCObjectPointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "name": "NSMutableArray" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2049, +// CHECK-NEXT: "col": 71, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2028, +// CHECK-NEXT: "col": 50, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2049, +// CHECK-NEXT: "col": 71, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "Dict", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCObjectPointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "name": "NSMutableDictionary" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2055, +// CHECK-NEXT: "col": 77, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2150, +// CHECK-NEXT: "line": 87, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PseudoObjectExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2059, +// CHECK-NEXT: "line": 82, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2077, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2059, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2077, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "=", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCSubscriptRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2059, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2066, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "subscriptKind": "array", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2059, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2059, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2059, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2059, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2059, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2059, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "Array", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2065, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2065, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2065, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2065, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2070, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2077, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CStyleCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2070, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2077, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NullToPointer", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2077, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2077, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2059, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2059, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2059, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2059, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2059, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2059, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "Array", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2065, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2065, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2065, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2065, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2070, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2077, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CStyleCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2070, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2077, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NullToPointer", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2077, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2077, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2070, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2077, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2070, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2077, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NullToPointer", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2070, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2077, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CStyleCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2070, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2077, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NullToPointer", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2077, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2077, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMessageExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2059, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2059, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "selector": "setObject:atIndexedSubscript:", +// CHECK-NEXT: "receiverKind": "instance", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2059, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2059, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2059, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2059, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2059, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2059, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "Array", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2070, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2077, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2070, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2077, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NullToPointer", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2070, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2077, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CStyleCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2070, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2077, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NullToPointer", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2077, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2077, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2065, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2065, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2065, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2065, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2082, +// CHECK-NEXT: "line": 83, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2097, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2085, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2082, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2096, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PseudoObjectExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2089, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2096, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCSubscriptRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2089, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2096, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "subscriptKind": "array", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2089, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2089, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2089, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2089, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2089, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2089, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "Array", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2095, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2095, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2095, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2095, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2089, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2089, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2089, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2089, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2089, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2089, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "Array", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2095, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2095, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2095, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2095, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMessageExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2089, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2089, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "selector": "objectAtIndexedSubscript:", +// CHECK-NEXT: "receiverKind": "instance", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2089, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2089, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2089, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2089, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2089, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2089, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "Array", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableArray *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2095, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2095, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2095, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2095, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "name": "id" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCObjectPointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCObjectType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PseudoObjectExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "line": 85, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2126, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2126, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "=", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCSubscriptRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2115, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "subscriptKind": "dictionary", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "Dict", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2109, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2110, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSString *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCStringLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2109, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2110, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSString *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "StringLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2110, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2110, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char[4]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "value": "\"key\"" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2119, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2126, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CStyleCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2119, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2126, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NullToPointer", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2126, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2126, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "Dict", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2109, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2110, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSString *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCStringLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2109, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2110, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSString *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "StringLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2110, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2110, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char[4]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "value": "\"key\"" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2119, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2126, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CStyleCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2119, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2126, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NullToPointer", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2126, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2126, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2119, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2126, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2119, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2126, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NullToPointer", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2119, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2126, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CStyleCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2119, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2126, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NullToPointer", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2126, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2126, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMessageExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "selector": "setObject:forKeyedSubscript:", +// CHECK-NEXT: "receiverKind": "instance", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2104, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "Dict", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2119, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2126, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2119, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2126, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NullToPointer", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2119, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2126, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CStyleCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2119, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2126, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NullToPointer", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2126, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2126, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2109, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2110, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "BitCast", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2109, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2110, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSString *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCStringLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2109, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2110, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSString *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "StringLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2110, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2110, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char[4]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "value": "\"key\"" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2131, +// CHECK-NEXT: "line": 86, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2146, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "=", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2131, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2131, +// CHECK-NEXT: "col": 2, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PseudoObjectExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2146, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCSubscriptRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2146, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "subscriptKind": "dictionary", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "Dict", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2140, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2141, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSString *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCStringLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2140, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2141, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSString *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "StringLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2141, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2141, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char[4]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "value": "\"key\"" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "Dict", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2140, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2141, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSString *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCStringLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2140, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2141, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSString *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "StringLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2141, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2141, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char[4]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "value": "\"key\"" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCMessageExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "selector": "objectForKeyedSubscript:", +// CHECK-NEXT: "receiverKind": "instance", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2135, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "Dict", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSMutableDictionary *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2140, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2141, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "id", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "BitCast", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2140, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2141, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSString *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCStringLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2140, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2141, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "NSString *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "StringLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2141, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2141, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char[4]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "value": "\"key\"" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2160, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 89, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 15 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2155, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2207, +// CHECK-NEXT: "line": 91, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestObjCIVarRef", +// CHECK-NEXT: "mangledName": "TestObjCIVarRef", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (I *)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2179, +// CHECK-NEXT: "line": 89, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2176, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2179, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "Ptr", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "I *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCObjectPointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "I *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "I" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "name": "I" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2184, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2207, +// CHECK-NEXT: "line": 91, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2189, +// CHECK-NEXT: "line": 90, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2203, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "=", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCIvarRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2189, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2194, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCIvarDecl", +// CHECK-NEXT: "name": "public", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isArrow": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2189, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2189, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "I *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2189, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2189, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "I *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "Ptr", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "I *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2203, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2203, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 2217, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 93, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2212, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2275, +// CHECK-NEXT: "line": 96, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestObjCBoolLiteral", +// CHECK-NEXT: "mangledName": "TestObjCBoolLiteral", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (void)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2243, +// CHECK-NEXT: "line": 93, +// CHECK-NEXT: "col": 32, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2275, +// CHECK-NEXT: "line": 96, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCBoolLiteralExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2248, +// CHECK-NEXT: "line": 94, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2248, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "signed char", +// CHECK-NEXT: "qualType": "BOOL", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "__objc_yes" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCBoolLiteralExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 2263, +// CHECK-NEXT: "line": 95, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 9 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 2263, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 9 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "signed char", +// CHECK-NEXT: "qualType": "BOOL", +// CHECK-NEXT: "typeAliasDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "__objc_no" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } diff --git a/clang/test/AST/ast-dump-expr.c b/clang/test/AST/ast-dump-expr.c index e7aba39be8f68..3576f2428b4de 100644 --- a/clang/test/AST/ast-dump-expr.c +++ b/clang/test/AST/ast-dump-expr.c @@ -222,15 +222,15 @@ void UnaryOperators(int a, int *b) { // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int' lvalue ParmVar 0x{{[^ ]*}} 'a' 'int' sizeof a; - // CHECK: UnaryExprOrTypeTraitExpr 0x{{[^ ]*}} '__size_t':'unsigned long' sizeof + // CHECK: UnaryExprOrTypeTraitExpr 0x{{[^ ]*}} // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int' lvalue ParmVar 0x{{[^ ]*}} 'a' 'int' sizeof(int); - // CHECK: UnaryExprOrTypeTraitExpr 0x{{[^ ]*}} '__size_t':'unsigned long' sizeof 'int' + // CHECK: UnaryExprOrTypeTraitExpr 0x{{[^ ]*}} _Alignof(int); // FIXME: Uses C++ spelling for alignof in C mode. - // CHECK: UnaryExprOrTypeTraitExpr 0x{{[^ ]*}} '__size_t':'unsigned long' alignof 'int' + // CHECK: UnaryExprOrTypeTraitExpr 0x{{[^ ]*}} } struct S { diff --git a/clang/test/AST/ast-dump-expr.cpp b/clang/test/AST/ast-dump-expr.cpp index 6fd429d1500a4..cd7db3c1862bd 100644 --- a/clang/test/AST/ast-dump-expr.cpp +++ b/clang/test/AST/ast-dump-expr.cpp @@ -115,34 +115,34 @@ void Casting(const S *s) { template void UnaryExpressions(int *p) { sizeof...(Ts); - // CHECK: SizeOfPackExpr 0x{{[^ ]*}} '__size_t':'unsigned long' 0x{{[^ ]*}} Ts + // CHECK: SizeOfPackExpr 0x{{[^ ]*}} noexcept(p - p); // CHECK: CXXNoexceptExpr 0x{{[^ ]*}} 'bool' - // CHECK-NEXT: BinaryOperator 0x{{[^ ]*}} '__ptrdiff_t':'long' '-' + // CHECK-NEXT: BinaryOperator 0x{{[^ ]*}} // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int *' lvalue ParmVar 0x{{[^ ]*}} 'p' 'int *' // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int *' lvalue ParmVar 0x{{[^ ]*}} 'p' 'int *' ::new int; - // CHECK: CXXNewExpr 0x{{[^ ]*}} 'int *' global Function 0x{{[^ ]*}} 'operator new' 'void *(__size_t)' + // CHECK: CXXNewExpr 0x{{[^ ]*}} new (int); - // CHECK: CXXNewExpr 0x{{[^ ]*}} 'int *' Function 0x{{[^ ]*}} 'operator new' 'void *(__size_t)' + // CHECK: CXXNewExpr 0x{{[^ ]*}} new int{12}; - // CHECK: CXXNewExpr 0x{{[^ ]*}} 'int *' Function 0x{{[^ ]*}} 'operator new' 'void *(__size_t)' + // CHECK: CXXNewExpr 0x{{[^ ]*}} // CHECK-NEXT: InitListExpr 0x{{[^ ]*}} 'int' // CHECK-NEXT: IntegerLiteral 0x{{[^ ]*}} 'int' 12 new int[2]; - // CHECK: CXXNewExpr 0x{{[^ ]*}} 'int *' array Function 0x{{[^ ]*}} 'operator new[]' 'void *(__size_t)' + // CHECK: CXXNewExpr 0x{{[^ ]*}} // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: IntegerLiteral 0x{{[^ ]*}} 'int' 2 new int[2]{1, 2}; - // CHECK: CXXNewExpr 0x{{[^ ]*}} 'int *' array Function 0x{{[^ ]*}} 'operator new[]' 'void *(__size_t)' + // CHECK: CXXNewExpr 0x{{[^ ]*}} // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: IntegerLiteral 0x{{[^ ]*}} 'int' 2 // CHECK-NEXT: InitListExpr 0x{{[^ ]*}} 'int[2]' @@ -164,7 +164,7 @@ void UnaryExpressions(int *p) { // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int *' lvalue ParmVar 0x{{[^ ]*}} 'p' 'int *' ::delete p; - // CHECK: CXXDeleteExpr 0x{{[^ ]*}} 'void' global Function 0x{{[^ ]*}} 'operator delete' 'void (void *, __size_t) noexcept' + // CHECK: CXXDeleteExpr 0x{{[^ ]*}} // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int *' lvalue ParmVar 0x{{[^ ]*}} 'p' 'int *' @@ -316,11 +316,11 @@ void PrimaryExpressions(Ts... a) { // CHECK-NEXT: Destructor // CHECK-NEXT: CXXMethodDecl 0x{{[^ ]*}} col:3 operator() 'auto (int, ...) const' inline // CHECK-NEXT: ParmVarDecl 0x{{[^ ]*}} col:10 a 'int' - // CHECK-NEXT: CompoundStmt + // CHECK: CompoundStmt // CHECK-NEXT: CXXConversionDecl 0x{{[^ ]*}} col:3 implicit constexpr operator auto (*)(int, ...) 'auto (*() const noexcept)(int, ...)' inline // CHECK-NEXT: CXXMethodDecl 0x{{[^ ]*}} col:3 implicit __invoke 'auto (int, ...)' static inline // CHECK-NEXT: ParmVarDecl 0x{{[^ ]*}} col:10 a 'int' - // CHECK-NEXT: CompoundStmt 0x{{[^ ]*}} + // CHECK: CompoundStmt 0x{{[^ ]*}} [a...]{}; // CHECK: LambdaExpr 0x{{[^ ]*}} '(lambda at {{.*}}:[[@LINE-1]]:3)' diff --git a/clang/test/AST/ast-dump-file-line-json.c b/clang/test/AST/ast-dump-file-line-json.c index da1c8dbd755d5..00273bdb3803c 100644 --- a/clang/test/AST/ast-dump-file-line-json.c +++ b/clang/test/AST/ast-dump-file-line-json.c @@ -1,310 +1,399 @@ -// RUN: %clang_cc1 -triple x86_64-unknown-unknown -ast-dump=json %s | FileCheck %s - -#line 4 "test.c" -int a; - -#line 32 "bar.h" -int b; -int c; - -#line 11 "test.c" -int d; -int e; -// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "TranslationUnitDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TypedefDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__int128_t", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "__int128" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BuiltinType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "__int128" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TypedefDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__uint128_t", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "unsigned __int128" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BuiltinType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "unsigned __int128" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TypedefDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__NSConstantString", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "struct __NSConstantString_tag" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "RecordType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "struct __NSConstantString_tag" -// CHECK-NEXT: }, -// CHECK-NEXT: "decl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "RecordDecl", -// CHECK-NEXT: "name": "__NSConstantString_tag" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TypedefDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__builtin_ms_va_list", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char *" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "PointerType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char *" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BuiltinType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TypedefDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__builtin_va_list", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "struct __va_list_tag[1]" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ConstantArrayType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "struct __va_list_tag[1]" -// CHECK-NEXT: }, -// CHECK-NEXT: "size": 1, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "RecordType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "struct __va_list_tag" -// CHECK-NEXT: }, -// CHECK-NEXT: "decl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "RecordDecl", -// CHECK-NEXT: "name": "__va_list_tag" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 4, -// CHECK-NEXT: "presumedFile": "{{.*}}", -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "mangledName": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 7, -// CHECK-NEXT: "presumedFile": "bar.h", -// CHECK-NEXT: "presumedLine": 32, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "mangledName": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 8, -// CHECK-NEXT: "presumedLine": 33, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "c", -// CHECK-NEXT: "mangledName": "c", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 11, -// CHECK-NEXT: "presumedFile": "{{.*}}", -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "d", -// CHECK-NEXT: "mangledName": "d", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 12, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "e", -// CHECK-NEXT: "mangledName": "e", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -ast-dump=json %s | FileCheck %s + +#line 4 "test.c" +int a; + +#line 32 "bar.h" +int b; +int c; + +#line 11 "test.c" +int d; +int e; +// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "TranslationUnitDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__int128_t", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "__int128" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "__int128" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__uint128_t", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "unsigned __int128" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "unsigned __int128" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__NSConstantString", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct __NSConstantString_tag" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct __NSConstantString_tag" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordDecl", +// CHECK-NEXT: "name": "__NSConstantString_tag" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__builtin_ms_va_list", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TypedefDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__builtin_va_list", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct __va_list_tag[1]" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ConstantArrayType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct __va_list_tag[1]" +// CHECK-NEXT: }, +// CHECK-NEXT: "size": 1, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "array" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct __va_list_tag" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordDecl", +// CHECK-NEXT: "name": "__va_list_tag" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 108, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 4, +// CHECK-NEXT: "presumedFile": "test.c", +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 104, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 108, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "mangledName": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 136, +// CHECK-NEXT: "line": 7, +// CHECK-NEXT: "presumedFile": "bar.h", +// CHECK-NEXT: "presumedLine": 32, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 132, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 136, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "mangledName": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 144, +// CHECK-NEXT: "line": 8, +// CHECK-NEXT: "presumedLine": 33, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 140, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 144, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "c", +// CHECK-NEXT: "mangledName": "c", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 173, +// CHECK-NEXT: "line": 11, +// CHECK-NEXT: "presumedFile": "test.c", +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 169, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 173, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "d", +// CHECK-NEXT: "mangledName": "d", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 181, +// CHECK-NEXT: "line": 12, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 177, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 181, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "e", +// CHECK-NEXT: "mangledName": "e", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } diff --git a/clang/test/AST/ast-dump-for-range-lifetime.cpp b/clang/test/AST/ast-dump-for-range-lifetime.cpp index ee046be19ab63..e1e6c95a74218 100644 --- a/clang/test/AST/ast-dump-for-range-lifetime.cpp +++ b/clang/test/AST/ast-dump-for-range-lifetime.cpp @@ -19,444 +19,1656 @@ const A &f1(const A &t) { return t; } void test1() { [[maybe_unused]] int sum = 0; - // CHECK: FunctionDecl {{.*}} test1 'void ()' - // CHECK: | `-CXXForRangeStmt {{.*}} - // CHECK-NEXT: | |-<<>> - // CHECK-NEXT: | |-DeclStmt {{.*}} - // CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __range1 'const A &' cinit - // CHECK-NEXT: | | `-ExprWithCleanups {{.*}} 'const A':'const P2718R0::A' lvalue - // CHECK-NEXT: | | `-CallExpr {{.*}} 'const A':'const P2718R0::A' lvalue - // CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'const A &(*)(const A &)' - // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'const A &(const A &)' lvalue Function {{.*}} 'f1' 'const A &(const A &)' - // CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'const A':'const P2718R0::A' lvalue extended by Var {{.*}} '__range1' 'const A &' - // CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'const A':'const P2718R0::A' - // CHECK-NEXT: | | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) - // CHECK-NEXT: | | `-CallExpr {{.*}} 'A':'P2718R0::A' - // CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'A (*)()' - // CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'A ()' lvalue Function {{.*}} 'g' 'A ()' + for (auto e : f1(g())) sum += e; } +// CHECK: |-FunctionDecl {{.*}} test1 'void ()' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used sum 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-attrDetails: UnusedAttr {{.*}} maybe_unused +// CHECK-NEXT: | `-CXXForRangeStmt {{.*}} +// CHECK-NEXT: | |-<<>> +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __range1 'const A &' cinit +// CHECK-NEXT: | | |-ExprWithCleanups {{.*}} 'const A':'const P2718R0::A' lvalue +// CHECK-NEXT: | | | `-CallExpr {{.*}} 'const A':'const P2718R0::A' lvalue +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'const A &(*)(const A &)' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'const A &(const A &)' lvalue Function {{.*}} 'f1' 'const A &(const A &)' +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'const A':'const P2718R0::A' lvalue extended by Var {{.*}} '__range1' 'const A &' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const A':'const P2718R0::A' +// CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | `-CallExpr {{.*}} 'A':'P2718R0::A' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'A (*)()' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'A ()' lvalue Function {{.*}} 'g' 'A ()' +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType {{.*}} 'const A &' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const A' const +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'A' sugar +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::A' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'A' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __begin1 'const int *' cinit +// CHECK-NEXT: | | |-CXXMemberCallExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .begin {{.*}} +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'const A':'const P2718R0::A' lvalue Var {{.*}} '__range1' 'const A &' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'const int *' sugar +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __end1 'const int *' cinit +// CHECK-NEXT: | | |-CXXMemberCallExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .end {{.*}} +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'const A':'const P2718R0::A' lvalue Var {{.*}} '__range1' 'const A &' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'const int *' sugar +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-BinaryOperator {{.*}} 'bool' '!=' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__begin1' 'const int *' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__end1' 'const int *' +// CHECK-NEXT: | |-UnaryOperator {{.*}} 'const int *' lvalue prefix '++' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__begin1' 'const int *' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used e 'int' cinit +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-UnaryOperator {{.*}} 'const int' lvalue prefix '*' cannot overflow +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__begin1' 'const int *' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'int' sugar +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundAssignOperator {{.*}} 'int' lvalue '+=' ComputeLHSTy='int' ComputeResultTy='int' +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'sum' 'int' +// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'e' 'int' + struct B : A {}; int (&f(const A *))[3]; const A *g(const A &); void bar(int) {} +// CHECK-NEXT: |-CXXRecordDecl {{.*}} referenced struct B definition +// CHECK-NEXT: | |-DefinitionData aggregate standard_layout has_constexpr_non_copy_move_ctor can_const_default_init +// CHECK-NEXT: | | |-DefaultConstructor exists non_trivial constexpr defaulted_is_constexpr +// CHECK-NEXT: | | |-CopyConstructor simple trivial has_const_param needs_overload_resolution implicit_has_const_param +// CHECK-NEXT: | | |-MoveConstructor exists simple trivial needs_overload_resolution +// CHECK-NEXT: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveAssignment exists simple trivial needs_overload_resolution +// CHECK-NEXT: | | `-Destructor simple non_trivial constexpr needs_overload_resolution +// CHECK-NEXT: | |-public 'A':'P2718R0::A' +// CHECK-NEXT: | |-CXXRecordDecl {{.*}} implicit struct B +// CHECK-NEXT: | |-CXXConstructorDecl {{.*}} implicit constexpr B 'void (const B &)' inline default trivial noexcept-unevaluated {{.*}} +// CHECK-NEXT: | | `-ParmVarDecl {{.*}} 'const B &' +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType {{.*}} 'const B &' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const B' const +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'B' sugar +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::B' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'B' +// CHECK-NEXT: | |-CXXConstructorDecl {{.*}} implicit constexpr B 'void (B &&)' inline default trivial noexcept-unevaluated {{.*}} +// CHECK-NEXT: | | `-ParmVarDecl {{.*}} 'B &&' +// CHECK-NEXT: | | `-typeDetails: RValueReferenceType {{.*}} 'B &&' +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'B' sugar +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::B' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'B' +// CHECK-NEXT: | |-CXXMethodDecl {{.*}} implicit constexpr operator= 'B &(B &&)' inline default trivial noexcept-unevaluated {{.*}} +// CHECK-NEXT: | | `-ParmVarDecl {{.*}} 'B &&' +// CHECK-NEXT: | | `-typeDetails: RValueReferenceType {{.*}} 'B &&' +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'B' sugar +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::B' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'B' +// CHECK-NEXT: | |-CXXDestructorDecl {{.*}} implicit used constexpr ~B 'void () noexcept' inline default +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-CXXConstructorDecl {{.*}} implicit used constexpr B 'void () noexcept(false)' inline default +// CHECK-NEXT: | |-CXXCtorInitializer 'A':'P2718R0::A' +// CHECK-NEXT: | | `-CXXConstructExpr {{.*}} 'A':'P2718R0::A' 'void ()' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: |-FunctionDecl {{.*}} used f 'int (&(const A *))[3]' +// CHECK-NEXT: | `-ParmVarDecl {{.*}} 'const A *' +// CHECK-NEXT: | `-typeDetails: PointerType {{.*}} 'const A *' +// CHECK-NEXT: | `-qualTypeDetail: QualType {{.*}} 'const A' const +// CHECK-NEXT: | `-typeDetails: ElaboratedType {{.*}} 'A' sugar +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'P2718R0::A' +// CHECK-NEXT: | `-CXXRecord {{.*}} 'A' +// CHECK-NEXT: |-FunctionDecl {{.*}} used g 'const A *(const A &)' +// CHECK-NEXT: | `-ParmVarDecl {{.*}} 'const A &' +// CHECK-NEXT: | `-typeDetails: LValueReferenceType {{.*}} 'const A &' +// CHECK-NEXT: | `-qualTypeDetail: QualType {{.*}} 'const A' const +// CHECK-NEXT: | `-typeDetails: ElaboratedType {{.*}} 'A' sugar +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'P2718R0::A' +// CHECK-NEXT: | `-CXXRecord {{.*}} 'A' +// CHECK-NEXT: |-FunctionDecl {{.*}} used bar 'void (int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} + void test2() { - // CHECK: FunctionDecl {{.*}} test2 'void ()' - // CHECK: | `-CXXForRangeStmt {{.*}} - // CHECK-NEXT: | |-<<>> - // CHECK-NEXT: | |-DeclStmt {{.*}} - // CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __range1 'int (&)[3]' cinit - // CHECK-NEXT: | | `-ExprWithCleanups {{.*}} 'int[3]' lvalue - // CHECK-NEXT: | | `-CallExpr {{.*}} 'int[3]' lvalue - // CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int (&(*)(const A *))[3]' - // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int (&(const A *))[3]' lvalue Function {{.*}} 'f' 'int (&(const A *))[3]' - // CHECK-NEXT: | | `-CallExpr {{.*}} 'const A *' - // CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'const A *(*)(const A &)' - // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'const A *(const A &)' lvalue Function {{.*}} 'g' 'const A *(const A &)' - // CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'const A':'const P2718R0::A' lvalue - // CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'const B':'const P2718R0::B' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' - // CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'const B':'const P2718R0::B' - // CHECK-NEXT: | | `-CXXBindTemporaryExpr {{.*}} 'B':'P2718R0::B' (CXXTemporary {{.*}}) - // CHECK-NEXT: | | `-CXXTemporaryObjectExpr {{.*}} 'B':'P2718R0::B' 'void () noexcept(false)' zeroing for (auto e : f(g(B()))) bar(e); } +// CHECK: |-FunctionDecl {{.*}} test2 'void ()' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-CXXForRangeStmt {{.*}} +// CHECK-NEXT: | |-<<>> +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __range1 'int (&)[3]' cinit +// CHECK-NEXT: | | |-ExprWithCleanups {{.*}} 'int[3]' lvalue +// CHECK-NEXT: | | | `-CallExpr {{.*}} 'int[3]' lvalue +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int (&(*)(const A *))[3]' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int (&(const A *))[3]' lvalue Function {{.*}} 'f' 'int (&(const A *))[3]' +// CHECK-NEXT: | | | `-CallExpr {{.*}} 'const A *' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'const A *(*)(const A &)' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'const A *(const A &)' lvalue Function {{.*}} 'g' 'const A *(const A &)' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const A':'const P2718R0::A' lvalue +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'const B':'const P2718R0::B' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const B':'const P2718R0::B' +// CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'B':'P2718R0::B' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | `-CXXTemporaryObjectExpr {{.*}} 'B':'P2718R0::B' 'void () noexcept(false)' zeroing +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType {{.*}} 'int (&)[3]' +// CHECK-NEXT: | | `-typeDetails: ParenType {{.*}} 'int[3]' sugar +// CHECK-NEXT: | | `-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __begin1 'int *' cinit +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | `-typeDetails: DecayedType {{.*}} 'int *' sugar +// CHECK-NEXT: | | |-typeDetails: ParenType {{.*}} 'int[3]' sugar +// CHECK-NEXT: | | | `-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __end1 'int *' cinit +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int *' '+' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK: | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-BinaryOperator {{.*}} 'bool' '!=' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__end1' 'int *' +// CHECK-NEXT: | |-UnaryOperator {{.*}} 'int *' lvalue prefix '++' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used e 'int' cinit +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-UnaryOperator {{.*}} 'int' lvalue prefix '*' cannot overflow +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'int' sugar +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CallExpr {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'void (*)(int)' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'void (int)' lvalue Function {{.*}} 'bar' 'void (int)' +// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'e' 'int' + // Test discard statement. struct LockGuard { LockGuard() {} ~LockGuard() {} }; +// CHECK: |-CXXRecordDecl {{.*}} referenced struct LockGuard definition +// CHECK-NEXT: | |-DefinitionData empty standard_layout has_user_declared_ctor can_const_default_init +// CHECK-NEXT: | | |-DefaultConstructor exists non_trivial user_provided defaulted_is_constexpr +// CHECK-NEXT: | | |-CopyConstructor simple trivial has_const_param implicit_has_const_param +// CHECK-NEXT: | | |-MoveConstructor +// CHECK-NEXT: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveAssignment +// CHECK-NEXT: | | `-Destructor non_trivial user_declared +// CHECK-NEXT: | |-CXXRecordDecl {{.*}} implicit referenced struct LockGuard +// CHECK-NEXT: | |-CXXConstructorDecl {{.*}} used LockGuard 'void ()' implicit-inline +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | |-CXXDestructorDecl {{.*}} used ~LockGuard 'void () noexcept' implicit-inline +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-CXXConstructorDecl {{.*}} implicit constexpr LockGuard 'void (const LockGuard &)' inline default trivial noexcept-unevaluated {{.*}} +// CHECK-NEXT: | `-ParmVarDecl {{.*}} 'const LockGuard &' +// CHECK-NEXT: | `-typeDetails: LValueReferenceType {{.*}} 'const LockGuard &' +// CHECK-NEXT: | `-qualTypeDetail: QualType {{.*}} 'const LockGuard' const +// CHECK-NEXT: | `-typeDetails: ElaboratedType {{.*}} 'LockGuard' sugar +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'P2718R0::LockGuard' +// CHECK-NEXT: | `-CXXRecord {{.*}} 'LockGuard' + void test3() { int v[] = {42, 17, 13}; - // CHECK: FunctionDecl {{.*}} test3 'void ()' - // CHECK: -CXXForRangeStmt {{.*}} - // CHECK-NEXT: |-<<>> - // CHECK-NEXT: |-DeclStmt {{.*}} - // CHECK-NEXT: | `-VarDecl {{.*}} implicit used __range1 'int (&)[3]' cinit - // CHECK-NEXT: | `-ExprWithCleanups {{.*}} 'int[3]' lvalue - // CHECK-NEXT: | `-BinaryOperator {{.*}} 'int[3]' lvalue ',' - // CHECK-NEXT: | |-CXXStaticCastExpr {{.*}} 'void' static_cast - // CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' xvalue extended by Var {{.*}} '__range1' 'int (&)[3]' - // CHECK-NEXT: | | `-CXXBindTemporaryExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' (CXXTemporary {{.*}}) - // CHECK-NEXT: | | `-CXXTemporaryObjectExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' 'void ()' - // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} 'v' 'int[3]' for ([[maybe_unused]] int x : static_cast(LockGuard()), v) LockGuard guard; - // CHECK: -CXXForRangeStmt {{.*}} - // CHECK-NEXT: |-<<>> - // CHECK-NEXT: |-DeclStmt {{.*}} - // CHECK-NEXT: | `-VarDecl {{.*}} implicit used __range1 'int (&)[3]' cinit - // CHECK-NEXT: | `-ExprWithCleanups {{.*}} 'int[3]' lvalue - // CHECK-NEXT: | `-BinaryOperator {{.*}} 'int[3]' lvalue ',' - // CHECK-NEXT: | |-CStyleCastExpr {{.*}} 'void' - // CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' xvalue extended by Var {{.*}} '__range1' 'int (&)[3]' - // CHECK-NEXT: | | `-CXXBindTemporaryExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' (CXXTemporary {{.*}}) - // CHECK-NEXT: | | `-CXXTemporaryObjectExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' 'void ()' - // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} 'v' 'int[3]' for ([[maybe_unused]] int x : (void)LockGuard(), v) LockGuard guard; - // CHECK: -CXXForRangeStmt {{.*}} - // CHECK-NEXT: |-<<>> - // CHECK-NEXT: |-DeclStmt {{.*}} - // CHECK-NEXT: | `-VarDecl {{.*}} implicit used __range1 'int (&)[3]' cinit - // CHECK-NEXT: | `-ExprWithCleanups {{.*}} 'int[3]' lvalue - // CHECK-NEXT: | `-BinaryOperator {{.*}} 'int[3]' lvalue ',' - // CHECK-NEXT: | |-MaterializeTemporaryExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' xvalue extended by Var {{.*}} '__range1' 'int (&)[3]' - // CHECK-NEXT: | | `-CXXBindTemporaryExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' (CXXTemporary {{.*}}) - // CHECK-NEXT: | | `-CXXTemporaryObjectExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' 'void ()' - // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} 'v' 'int[3]' for ([[maybe_unused]] int x : LockGuard(), v) LockGuard guard; } +// CHECK-NEXT: |-FunctionDecl {{.*}} test3 'void ()' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used v 'int[3]' cinit +// CHECK-NEXT: | | |-InitListExpr {{.*}} 'int[3]' +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 42 +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 17 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 13 +// CHECK-NEXT: | | `-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-CXXForRangeStmt {{.*}} +// CHECK-NEXT: | | |-<<>> +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} implicit used __range1 'int (&)[3]' cinit +// CHECK-NEXT: | | | |-ExprWithCleanups {{.*}} 'int[3]' lvalue +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int[3]' lvalue ',' +// CHECK-NEXT: | | | | |-CXXStaticCastExpr {{.*}} 'void' static_cast +// CHECK-NEXT: | | | | | `-MaterializeTemporaryExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' xvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | | | `-CXXBindTemporaryExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | | | `-CXXTemporaryObjectExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' 'void ()' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} 'v' 'int[3]' +// CHECK-NEXT: | | | `-typeDetails: LValueReferenceType {{.*}} 'int (&)[3]' +// CHECK-NEXT: | | | `-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} implicit used __begin1 'int *' cinit +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | | `-typeDetails: DecayedType {{.*}} 'int *' sugar +// CHECK-NEXT: | | | |-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} implicit used __end1 'int *' cinit +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int *' '+' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK: | | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'bool' '!=' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__end1' 'int *' +// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int *' lvalue prefix '++' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} x 'int' cinit +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-UnaryOperator {{.*}} 'int' lvalue prefix '*' cannot overflow +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-attrDetails: UnusedAttr {{.*}} maybe_unused +// CHECK-NEXT: | | `-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} guard 'LockGuard':'P2718R0::LockGuard' callinit destroyed +// CHECK-NEXT: | | |-CXXConstructExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' 'void ()' +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'LockGuard' sugar +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::LockGuard' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'LockGuard' +// CHECK-NEXT: | |-CXXForRangeStmt {{.*}} +// CHECK-NEXT: | | |-<<>> +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} implicit used __range1 'int (&)[3]' cinit +// CHECK-NEXT: | | | |-ExprWithCleanups {{.*}} 'int[3]' lvalue +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int[3]' lvalue ',' +// CHECK-NEXT: | | | | |-CStyleCastExpr {{.*}} 'void' +// CHECK-NEXT: | | | | | `-MaterializeTemporaryExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' xvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | | | `-CXXBindTemporaryExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | | | `-CXXTemporaryObjectExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' 'void ()' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} 'v' 'int[3]' +// CHECK-NEXT: | | | `-typeDetails: LValueReferenceType {{.*}} 'int (&)[3]' +// CHECK-NEXT: | | | `-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} implicit used __begin1 'int *' cinit +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | | `-typeDetails: DecayedType {{.*}} 'int *' sugar +// CHECK-NEXT: | | | |-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} implicit used __end1 'int *' cinit +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int *' '+' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK: | | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'bool' '!=' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__end1' 'int *' +// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int *' lvalue prefix '++' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} x 'int' cinit +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-UnaryOperator {{.*}} 'int' lvalue prefix '*' cannot overflow +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-attrDetails: UnusedAttr {{.*}} maybe_unused +// CHECK-NEXT: | | `-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} guard 'LockGuard':'P2718R0::LockGuard' callinit destroyed +// CHECK-NEXT: | | |-CXXConstructExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' 'void ()' +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'LockGuard' sugar +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::LockGuard' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'LockGuard' +// CHECK-NEXT: | `-CXXForRangeStmt {{.*}} +// CHECK-NEXT: | |-<<>> +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __range1 'int (&)[3]' cinit +// CHECK-NEXT: | | |-ExprWithCleanups {{.*}} 'int[3]' lvalue +// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int[3]' lvalue ',' +// CHECK-NEXT: | | | |-MaterializeTemporaryExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' xvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | | `-CXXBindTemporaryExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | | `-CXXTemporaryObjectExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' 'void ()' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} 'v' 'int[3]' +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType {{.*}} 'int (&)[3]' +// CHECK-NEXT: | | `-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __begin1 'int *' cinit +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | `-typeDetails: DecayedType {{.*}} 'int *' sugar +// CHECK-NEXT: | | |-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __end1 'int *' cinit +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int *' '+' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK: | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-BinaryOperator {{.*}} 'bool' '!=' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__end1' 'int *' +// CHECK-NEXT: | |-UnaryOperator {{.*}} 'int *' lvalue prefix '++' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} x 'int' cinit +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-UnaryOperator {{.*}} 'int' lvalue prefix '*' cannot overflow +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | |-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-attrDetails: UnusedAttr {{.*}} maybe_unused +// CHECK-NEXT: | `-DeclStmt {{.*}} +// CHECK-NEXT: | `-VarDecl {{.*}} guard 'LockGuard':'P2718R0::LockGuard' callinit destroyed +// CHECK-NEXT: | |-CXXConstructExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' 'void ()' +// CHECK-NEXT: | `-typeDetails: ElaboratedType {{.*}} 'LockGuard' sugar +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'P2718R0::LockGuard' +// CHECK-NEXT: | `-CXXRecord {{.*}} 'LockGuard' + // Test default arg int (&default_arg_fn(const A & = A()))[3]; -void test4() { - // CHECK: FunctionDecl {{.*}} test4 'void ()' - // CHECK: -CXXForRangeStmt {{.*}} - // CHECK-NEXT: |-<<>> - // CHECK-NEXT: |-DeclStmt {{.*}} - // CHECK-NEXT: | `-VarDecl{{.*}} implicit used __range1 'int (&)[3]' cinit - // CHECK-NEXT: | `-ExprWithCleanups {{.*}} 'int[3]' lvalue - // CHECK-NEXT: | `-CallExpr {{.*}} 'int[3]' lvalue - // CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'int (&(*)(const A &))[3]' - // CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int (&(const A &))[3]' lvalue Function {{.*}} 'default_arg_fn' 'int (&(const A &))[3]' - // CHECK-NEXT: | `-CXXDefaultArgExpr {{.*}} <> 'const A':'const P2718R0::A' lvalue has rewritten init - // CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'const A':'const P2718R0::A' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' - // CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'const A':'const P2718R0::A' - // CHECK-NEXT: | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) - // CHECK-NEXT: | `-CXXTemporaryObjectExpr {{.*}} 'A':'P2718R0::A' 'void ()' +// CHECK-NEXT: |-FunctionDecl {{.*}} used default_arg_fn 'int (&(const A &))[3]' +// CHECK-NEXT: | `-ParmVarDecl {{.*}} 'const A &' cinit +// CHECK-NEXT: | |-ExprWithCleanups {{.*}} 'const A':'const P2718R0::A' lvalue +// CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'const A':'const P2718R0::A' lvalue +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'const A':'const P2718R0::A' +// CHECK-NEXT: | | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | `-CXXTemporaryObjectExpr {{.*}} 'A':'P2718R0::A' 'void ()' +// CHECK-NEXT: | `-typeDetails: LValueReferenceType {{.*}} 'const A &' +// CHECK-NEXT: | `-qualTypeDetail: QualType {{.*}} 'const A' const +// CHECK-NEXT: | `-typeDetails: ElaboratedType {{.*}} 'A' sugar +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'P2718R0::A' +// CHECK-NEXT: | `-CXXRecord {{.*}} 'A' + +void test4() { for (auto e : default_arg_fn()) bar(e); } +// CHECK: |-FunctionDecl {{.*}} test4 'void ()' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-CXXForRangeStmt {{.*}} +// CHECK-NEXT: | |-<<>> +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __range1 'int (&)[3]' cinit +// CHECK-NEXT: | | |-ExprWithCleanups {{.*}} 'int[3]' lvalue +// CHECK-NEXT: | | | `-CallExpr {{.*}} 'int[3]' lvalue +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int (&(*)(const A &))[3]' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int (&(const A &))[3]' lvalue Function {{.*}} 'default_arg_fn' 'int (&(const A &))[3]' +// CHECK-NEXT: | | | `-CXXDefaultArgExpr {{.*}} <> 'const A':'const P2718R0::A' lvalue has rewritten init +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'const A':'const P2718R0::A' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const A':'const P2718R0::A' +// CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | `-CXXTemporaryObjectExpr {{.*}} 'A':'P2718R0::A' 'void ()' +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType {{.*}} 'int (&)[3]' +// CHECK-NEXT: | | `-typeDetails: ParenType {{.*}} 'int[3]' sugar +// CHECK-NEXT: | | `-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __begin1 'int *' cinit +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | `-typeDetails: DecayedType {{.*}} 'int *' sugar +// CHECK-NEXT: | | |-typeDetails: ParenType {{.*}} 'int[3]' sugar +// CHECK-NEXT: | | | `-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __end1 'int *' cinit +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int *' '+' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK: | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-BinaryOperator {{.*}} 'bool' '!=' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__end1' 'int *' +// CHECK-NEXT: | |-UnaryOperator {{.*}} 'int *' lvalue prefix '++' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used e 'int' cinit +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-UnaryOperator {{.*}} 'int' lvalue prefix '*' cannot overflow +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'int' sugar +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CallExpr {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'void (*)(int)' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'void (int)' lvalue Function {{.*}} 'bar' 'void (int)' +// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'e' 'int' + struct DefaultA { DefaultA() {} ~DefaultA() {} }; +// CHECK: |-CXXRecordDecl {{.*}} referenced struct DefaultA definition +// CHECK-NEXT: | |-DefinitionData empty standard_layout has_user_declared_ctor can_const_default_init +// CHECK-NEXT: | | |-DefaultConstructor exists non_trivial user_provided defaulted_is_constexpr +// CHECK-NEXT: | | |-CopyConstructor simple trivial has_const_param implicit_has_const_param +// CHECK-NEXT: | | |-MoveConstructor +// CHECK-NEXT: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveAssignment +// CHECK-NEXT: | | `-Destructor non_trivial user_declared +// CHECK-NEXT: | |-CXXRecordDecl {{.*}} implicit referenced struct DefaultA +// CHECK-NEXT: | |-CXXConstructorDecl {{.*}} used DefaultA 'void ()' implicit-inline +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | |-CXXDestructorDecl {{.*}} used ~DefaultA 'void () noexcept' implicit-inline +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-CXXConstructorDecl {{.*}} implicit constexpr DefaultA 'void (const DefaultA &)' inline default trivial noexcept-unevaluated {{.*}} +// CHECK-NEXT: | `-ParmVarDecl {{.*}} 'const DefaultA &' +// CHECK-NEXT: | `-typeDetails: LValueReferenceType {{.*}} 'const DefaultA &' +// CHECK-NEXT: | `-qualTypeDetail: QualType {{.*}} 'const DefaultA' const +// CHECK-NEXT: | `-typeDetails: ElaboratedType {{.*}} 'DefaultA' sugar +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'P2718R0::DefaultA' +// CHECK-NEXT: | `-CXXRecord {{.*}} 'DefaultA' + A foo(const A&, const DefaultA &Default = DefaultA()) { return A(); } +// CHECK: |-FunctionDecl {{.*}} used foo 'A (const A &, const DefaultA &)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} 'const A &' +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType {{.*}} 'const A &' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const A' const +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'A' sugar +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::A' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'A' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} Default 'const DefaultA &' cinit +// CHECK-NEXT: | | |-ExprWithCleanups {{.*}} 'const DefaultA':'const P2718R0::DefaultA' lvalue +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' lvalue +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' +// CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | `-CXXTemporaryObjectExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' 'void ()' +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType {{.*}} 'const DefaultA &' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const DefaultA' const +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'DefaultA' sugar +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::DefaultA' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'DefaultA' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-ReturnStmt {{.*}} +// CHECK-NEXT: | `-ExprWithCleanups {{.*}} 'A':'P2718R0::A' +// CHECK-NEXT: | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | `-CXXTemporaryObjectExpr {{.*}} 'A':'P2718R0::A' 'void ()' + void test5() { - // CHECK: FunctionDecl {{.*}} test5 'void ()' - // CHECK: -CXXForRangeStmt {{.*}} - // CHECK-NEXT: |-<<>> - // CHECK-NEXT: |-DeclStmt {{.*}} - // CHECK-NEXT: | `-VarDecl {{.*}} implicit used __range1 'int (&)[3]' cinit - // CHECK-NEXT: | `-ExprWithCleanups {{.*}} 'int[3]' lvalue - // CHECK-NEXT: | `-CallExpr {{.*}} 'int[3]' lvalue - // CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'int (&(*)(const A &))[3]' - // CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int (&(const A &))[3]' lvalue Function {{.*}} 'default_arg_fn' 'int (&(const A &))[3]' - // CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'const A':'const P2718R0::A' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' - // CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'const A':'const P2718R0::A' - // CHECK-NEXT: | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' - // CHECK-NEXT: | `-CallExpr {{.*}} 'A':'P2718R0::A' - // CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'A (*)(const A &, const DefaultA &)' - // CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'A (const A &, const DefaultA &)' lvalue Function {{.*}} 'foo' 'A (const A &, const DefaultA &)' - // CHECK-NEXT: | |-MaterializeTemporaryExpr {{.*}} 'const A':'const P2718R0::A' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' - // CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'const A':'const P2718R0::A' - // CHECK-NEXT: | | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' - // CHECK-NEXT: | | `-CallExpr {{.*}} 'A':'P2718R0::A' - // CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'A (*)(const A &, const DefaultA &)' - // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'A (const A &, const DefaultA &)' lvalue Function {{.*}} 'foo' 'A (const A &, const DefaultA &)' - // CHECK-NEXT: | | |-MaterializeTemporaryExpr {{.*}} 'const A':'const P2718R0::A' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' - // CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const A':'const P2718R0::A' - // CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' - // CHECK-NEXT: | | | `-CallExpr {{.*}} 'A':'P2718R0::A' - // CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'A (*)(const A &, const DefaultA &)' - // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'A (const A &, const DefaultA &)' lvalue Function {{.*}} 'foo' 'A (const A &, const DefaultA &)' - // CHECK-NEXT: | | | |-MaterializeTemporaryExpr {{.*}} 'const A':'const P2718R0::A' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' - // CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'const A':'const P2718R0::A' - // CHECK-NEXT: | | | | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' - // CHECK-NEXT: | | | | `-CXXTemporaryObjectExpr {{.*}} 'A':'P2718R0::A' 'void ()' - // CHECK-NEXT: | | | `-CXXDefaultArgExpr {{.*}} <> 'const DefaultA':'const P2718R0::DefaultA' lvalue has rewritten init - // CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' - // CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' - // CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' (CXXTemporary {{.*}}) - // CHECK-NEXT: | | | `-CXXTemporaryObjectExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' 'void ()' - // CHECK-NEXT: | | `-CXXDefaultArgExpr {{.*}} <> 'const DefaultA':'const P2718R0::DefaultA' lvalue has rewritten init - // CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' - // CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' - // CHECK-NEXT: | | `-CXXBindTemporaryExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' (CXXTemporary {{.*}}) - // CHECK-NEXT: | | `-CXXTemporaryObjectExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' 'void ()' - // CHECK-NEXT: | `-CXXDefaultArgExpr {{.*}} <> 'const DefaultA':'const P2718R0::DefaultA' lvalue has rewritten init - // CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' - // CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' - // CHECK-NEXT: | `-CXXBindTemporaryExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' (CXXTemporary {{.*}}) - // CHECK-NEXT: | `-CXXTemporaryObjectExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' 'void ()' for (auto e : default_arg_fn(foo(foo(foo(A()))))) bar(e); } +// CHECK: |-FunctionDecl {{.*}} test5 'void ()' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-CXXForRangeStmt {{.*}} +// CHECK-NEXT: | |-<<>> +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __range1 'int (&)[3]' cinit +// CHECK-NEXT: | | |-ExprWithCleanups {{.*}} 'int[3]' lvalue +// CHECK-NEXT: | | | `-CallExpr {{.*}} 'int[3]' lvalue +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int (&(*)(const A &))[3]' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int (&(const A &))[3]' lvalue Function {{.*}} 'default_arg_fn' 'int (&(const A &))[3]' +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'const A':'const P2718R0::A' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const A':'const P2718R0::A' +// CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | `-CallExpr {{.*}} 'A':'P2718R0::A' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'A (*)(const A &, const DefaultA &)' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'A (const A &, const DefaultA &)' lvalue Function {{.*}} 'foo' 'A (const A &, const DefaultA &)' +// CHECK-NEXT: | | | |-MaterializeTemporaryExpr {{.*}} 'const A':'const P2718R0::A' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'const A':'const P2718R0::A' +// CHECK-NEXT: | | | | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | | `-CallExpr {{.*}} 'A':'P2718R0::A' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'A (*)(const A &, const DefaultA &)' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'A (const A &, const DefaultA &)' lvalue Function {{.*}} 'foo' 'A (const A &, const DefaultA &)' +// CHECK-NEXT: | | | | |-MaterializeTemporaryExpr {{.*}} 'const A':'const P2718R0::A' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'const A':'const P2718R0::A' +// CHECK-NEXT: | | | | | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | | | `-CallExpr {{.*}} 'A':'P2718R0::A' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'A (*)(const A &, const DefaultA &)' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'A (const A &, const DefaultA &)' lvalue Function {{.*}} 'foo' 'A (const A &, const DefaultA &)' +// CHECK-NEXT: | | | | | |-MaterializeTemporaryExpr {{.*}} 'const A':'const P2718R0::A' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'const A':'const P2718R0::A' +// CHECK-NEXT: | | | | | | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | | | | `-CXXTemporaryObjectExpr {{.*}} 'A':'P2718R0::A' 'void ()' +// CHECK-NEXT: | | | | | `-CXXDefaultArgExpr {{.*}} <> 'const DefaultA':'const P2718R0::DefaultA' lvalue has rewritten init +// CHECK-NEXT: | | | | | `-MaterializeTemporaryExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' +// CHECK-NEXT: | | | | | `-CXXBindTemporaryExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | | | `-CXXTemporaryObjectExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' 'void ()' +// CHECK-NEXT: | | | | `-CXXDefaultArgExpr {{.*}} <> 'const DefaultA':'const P2718R0::DefaultA' lvalue has rewritten init +// CHECK-NEXT: | | | | `-MaterializeTemporaryExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' +// CHECK-NEXT: | | | | `-CXXBindTemporaryExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | | `-CXXTemporaryObjectExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' 'void ()' +// CHECK-NEXT: | | | `-CXXDefaultArgExpr {{.*}} <> 'const DefaultA':'const P2718R0::DefaultA' lvalue has rewritten init +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' +// CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | `-CXXTemporaryObjectExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' 'void ()' +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType {{.*}} 'int (&)[3]' +// CHECK-NEXT: | | `-typeDetails: ParenType {{.*}} 'int[3]' sugar +// CHECK-NEXT: | | `-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __begin1 'int *' cinit +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | `-typeDetails: DecayedType {{.*}} 'int *' sugar +// CHECK-NEXT: | | |-typeDetails: ParenType {{.*}} 'int[3]' sugar +// CHECK-NEXT: | | | `-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __end1 'int *' cinit +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int *' '+' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK: | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-BinaryOperator {{.*}} 'bool' '!=' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__end1' 'int *' +// CHECK-NEXT: | |-UnaryOperator {{.*}} 'int *' lvalue prefix '++' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used e 'int' cinit +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-UnaryOperator {{.*}} 'int' lvalue prefix '*' cannot overflow +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'int' sugar +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CallExpr {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'void (*)(int)' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'void (int)' lvalue Function {{.*}} 'bar' 'void (int)' +// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'e' 'int' + struct C : public A { C() {} C(int, const C &, const DefaultA & = DefaultA()) {} }; +// CHECK: |-CXXRecordDecl {{.*}} referenced struct C definition +// CHECK-NEXT: | |-DefinitionData standard_layout has_user_declared_ctor can_const_default_init +// CHECK-NEXT: | | |-DefaultConstructor exists non_trivial user_provided defaulted_is_constexpr +// CHECK-NEXT: | | |-CopyConstructor simple trivial has_const_param needs_overload_resolution implicit_has_const_param +// CHECK-NEXT: | | |-MoveConstructor exists simple trivial needs_overload_resolution +// CHECK-NEXT: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveAssignment exists simple trivial needs_overload_resolution +// CHECK-NEXT: | | `-Destructor simple non_trivial constexpr needs_overload_resolution +// CHECK-NEXT: | |-public 'A':'P2718R0::A' +// CHECK-NEXT: | |-CXXRecordDecl {{.*}} implicit referenced struct C +// CHECK-NEXT: | |-CXXConstructorDecl {{.*}} used C 'void ()' implicit-inline +// CHECK-NEXT: | | |-CXXCtorInitializer 'A':'P2718R0::A' +// CHECK-NEXT: | | | `-CXXConstructExpr {{.*}} 'A':'P2718R0::A' 'void ()' +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | |-CXXConstructorDecl {{.*}} used C 'void (int, const C &, const DefaultA &)' implicit-inline +// CHECK-NEXT: | | |-ParmVarDecl {{.*}} 'int' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ParmVarDecl {{.*}} 'const C &' +// CHECK-NEXT: | | | `-typeDetails: LValueReferenceType {{.*}} 'const C &' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const C' const +// CHECK-NEXT: | | | `-typeDetails: ElaboratedType {{.*}} 'C' sugar +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'P2718R0::C' +// CHECK-NEXT: | | | `-CXXRecord {{.*}} 'C' +// CHECK-NEXT: | | |-ParmVarDecl {{.*}} 'const DefaultA &' cinit +// CHECK-NEXT: | | | |-ExprWithCleanups {{.*}} 'const DefaultA':'const P2718R0::DefaultA' lvalue +// CHECK-NEXT: | | | | `-MaterializeTemporaryExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' lvalue +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' +// CHECK-NEXT: | | | | `-CXXBindTemporaryExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | | `-CXXTemporaryObjectExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' 'void ()' +// CHECK-NEXT: | | | `-typeDetails: LValueReferenceType {{.*}} 'const DefaultA &' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const DefaultA' const +// CHECK-NEXT: | | | `-typeDetails: ElaboratedType {{.*}} 'DefaultA' sugar +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'P2718R0::DefaultA' +// CHECK-NEXT: | | | `-CXXRecord {{.*}} 'DefaultA' +// CHECK-NEXT: | | |-CXXCtorInitializer 'A':'P2718R0::A' +// CHECK-NEXT: | | | `-CXXConstructExpr {{.*}} 'A':'P2718R0::A' 'void ()' +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | |-CXXConstructorDecl {{.*}} implicit constexpr C 'void (const C &)' inline default trivial noexcept-unevaluated {{.*}} +// CHECK-NEXT: | | `-ParmVarDecl {{.*}} 'const C &' +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType {{.*}} 'const C &' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const C' const +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'C' sugar +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::C' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'C' +// CHECK-NEXT: | |-CXXConstructorDecl {{.*}} implicit constexpr C 'void (C &&)' inline default trivial noexcept-unevaluated {{.*}} +// CHECK-NEXT: | | `-ParmVarDecl {{.*}} 'C &&' +// CHECK-NEXT: | | `-typeDetails: RValueReferenceType {{.*}} 'C &&' +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'C' sugar +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::C' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'C' +// CHECK-NEXT: | |-CXXMethodDecl {{.*}} implicit constexpr operator= 'C &(C &&)' inline default trivial noexcept-unevaluated {{.*}} +// CHECK-NEXT: | | `-ParmVarDecl {{.*}} 'C &&' +// CHECK-NEXT: | | `-typeDetails: RValueReferenceType {{.*}} 'C &&' +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'C' sugar +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::C' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'C' +// CHECK-NEXT: | `-CXXDestructorDecl {{.*}} implicit used constexpr ~C 'void () noexcept' inline default +// CHECK-NEXT: | `-CompoundStmt {{.*}} + void test6() { - // CHECK: FunctionDecl {{.*}} test6 'void ()' - // CHECK: -CXXForRangeStmt {{.*}} - // CHECK-NEXT: |-<<>> - // CHECK-NEXT: |-DeclStmt {{.*}} - // CHECK-NEXT: | `-VarDecl {{.*}} col:17 implicit used __range1 'C &&' cinit - // CHECK-NEXT: | `-ExprWithCleanups {{.*}} 'C':'P2718R0::C' xvalue - // CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'C':'P2718R0::C' xvalue extended by Var {{.*}} '__range1' 'C &&' - // CHECK-NEXT: | `-CXXBindTemporaryExpr {{.*}} 'C':'P2718R0::C' - // CHECK-NEXT: | `-CXXTemporaryObjectExpr {{.*}} 'C':'P2718R0::C' 'void (int, const C &, const DefaultA &)' - // CHECK-NEXT: | |-IntegerLiteral {{.*}}'int' 0 - // CHECK-NEXT: | |-MaterializeTemporaryExpr {{.*}} 'const C':'const P2718R0::C' lvalue extended by Var {{.*}} '__range1' 'C &&' - // CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'const C':'const P2718R0::C' - // CHECK-NEXT: | | `-CXXBindTemporaryExpr {{.*}} 'C':'P2718R0::C' - // CHECK-NEXT: | | `-CXXTemporaryObjectExpr {{.*}} 'C':'P2718R0::C' 'void (int, const C &, const DefaultA &)' - // CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 - // CHECK-NEXT: | | |-MaterializeTemporaryExpr {{.*}} 'const C':'const P2718R0::C' lvalue extended by Var {{.*}} '__range1' 'C &&' - // CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const C':'const P2718R0::C' - // CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'C':'P2718R0::C' - // CHECK-NEXT: | | | `-CXXTemporaryObjectExpr {{.*}} 'C':'P2718R0::C' 'void (int, const C &, const DefaultA &)' - // CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 - // CHECK-NEXT: | | | |-MaterializeTemporaryExpr {{.*}} 'const C':'const P2718R0::C' lvalue extended by Var {{.*}} '__range1' 'C &&' - // CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'const C':'const P2718R0::C' - // CHECK-NEXT: | | | | `-CXXBindTemporaryExpr {{.*}} 'C':'P2718R0::C' - // CHECK-NEXT: | | | | `-CXXTemporaryObjectExpr {{.*}} 'C':'P2718R0::C' 'void ()' - // CHECK-NEXT: | | | `-CXXDefaultArgExpr {{.*}} <> 'const DefaultA':'const P2718R0::DefaultA' lvalue has rewritten init - // CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' lvalue extended by Var {{.*}} '__range1' 'C &&' - // CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' - // CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' (CXXTemporary {{.*}}) - // CHECK-NEXT: | | | `-CXXTemporaryObjectExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' 'void ()' - // CHECK-NEXT: | | `-CXXDefaultArgExpr {{.*}} <> 'const DefaultA':'const P2718R0::DefaultA' lvalue has rewritten init - // CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' lvalue extended by Var {{.*}} '__range1' 'C &&' - // CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' - // CHECK-NEXT: | | `-CXXBindTemporaryExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' (CXXTemporary {{.*}}) - // CHECK-NEXT: | | `-CXXTemporaryObjectExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' 'void ()' - // CHECK-NEXT: | `-CXXDefaultArgExpr {{.*}} <> 'const DefaultA':'const P2718R0::DefaultA' lvalue has rewritten init - // CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' lvalue extended by Var {{.*}} '__range1' 'C &&' - // CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' - // CHECK-NEXT: | `-CXXBindTemporaryExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' (CXXTemporary {{.*}}) - // CHECK-NEXT: | `-CXXTemporaryObjectExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' 'void ()' for (auto e : C(0, C(0, C(0, C())))) bar(e); } +// CHECK: |-FunctionDecl {{.*}} test6 'void ()' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-CXXForRangeStmt {{.*}} +// CHECK-NEXT: | |-<<>> +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __range1 'C &&' cinit +// CHECK-NEXT: | | |-ExprWithCleanups {{.*}} 'C':'P2718R0::C' xvalue +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'C':'P2718R0::C' xvalue extended by Var {{.*}} '__range1' 'C &&' +// CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'C':'P2718R0::C' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | `-CXXTemporaryObjectExpr {{.*}} 'C':'P2718R0::C' 'void (int, const C &, const DefaultA &)' +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-MaterializeTemporaryExpr {{.*}} 'const C':'const P2718R0::C' lvalue extended by Var {{.*}} '__range1' 'C &&' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'const C':'const P2718R0::C' +// CHECK-NEXT: | | | | `-CXXBindTemporaryExpr {{.*}} 'C':'P2718R0::C' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | | `-CXXTemporaryObjectExpr {{.*}} 'C':'P2718R0::C' 'void (int, const C &, const DefaultA &)' +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-MaterializeTemporaryExpr {{.*}} 'const C':'const P2718R0::C' lvalue extended by Var {{.*}} '__range1' 'C &&' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'const C':'const P2718R0::C' +// CHECK-NEXT: | | | | | `-CXXBindTemporaryExpr {{.*}} 'C':'P2718R0::C' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | | | `-CXXTemporaryObjectExpr {{.*}} 'C':'P2718R0::C' 'void (int, const C &, const DefaultA &)' +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-MaterializeTemporaryExpr {{.*}} 'const C':'const P2718R0::C' lvalue extended by Var {{.*}} '__range1' 'C &&' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'const C':'const P2718R0::C' +// CHECK-NEXT: | | | | | | `-CXXBindTemporaryExpr {{.*}} 'C':'P2718R0::C' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | | | | `-CXXTemporaryObjectExpr {{.*}} 'C':'P2718R0::C' 'void ()' +// CHECK-NEXT: | | | | | `-CXXDefaultArgExpr {{.*}} <> 'const DefaultA':'const P2718R0::DefaultA' lvalue has rewritten init +// CHECK-NEXT: | | | | | `-MaterializeTemporaryExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' lvalue extended by Var {{.*}} '__range1' 'C &&' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' +// CHECK-NEXT: | | | | | `-CXXBindTemporaryExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | | | `-CXXTemporaryObjectExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' 'void ()' +// CHECK-NEXT: | | | | `-CXXDefaultArgExpr {{.*}} <> 'const DefaultA':'const P2718R0::DefaultA' lvalue has rewritten init +// CHECK-NEXT: | | | | `-MaterializeTemporaryExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' lvalue extended by Var {{.*}} '__range1' 'C &&' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' +// CHECK-NEXT: | | | | `-CXXBindTemporaryExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | | `-CXXTemporaryObjectExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' 'void ()' +// CHECK-NEXT: | | | `-CXXDefaultArgExpr {{.*}} <> 'const DefaultA':'const P2718R0::DefaultA' lvalue has rewritten init +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' lvalue extended by Var {{.*}} '__range1' 'C &&' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' +// CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | `-CXXTemporaryObjectExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' 'void ()' +// CHECK-NEXT: | | `-typeDetails: RValueReferenceType {{.*}} 'C &&' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'C' sugar +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'C' sugar +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::C' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'C' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __begin1 'const int *' cinit +// CHECK-NEXT: | | |-CXXMemberCallExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .begin {{.*}} +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const P2718R0::A' lvalue +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'C':'P2718R0::C' lvalue Var {{.*}} '__range1' 'C &&' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'const int *' sugar +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __end1 'const int *' cinit +// CHECK-NEXT: | | |-CXXMemberCallExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .end {{.*}} +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const P2718R0::A' lvalue +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'C':'P2718R0::C' lvalue Var {{.*}} '__range1' 'C &&' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'const int *' sugar +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-BinaryOperator {{.*}} 'bool' '!=' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__begin1' 'const int *' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__end1' 'const int *' +// CHECK-NEXT: | |-UnaryOperator {{.*}} 'const int *' lvalue prefix '++' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__begin1' 'const int *' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used e 'int' cinit +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-UnaryOperator {{.*}} 'const int' lvalue prefix '*' cannot overflow +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__begin1' 'const int *' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'int' sugar +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CallExpr {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'void (*)(int)' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'void (int)' lvalue Function {{.*}} 'bar' 'void (int)' +// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'e' 'int' + // Test member call void test7() { - // CHECK: FunctionDecl {{.*}} test7 'void ()' - // CHECK: -CXXForRangeStmt {{.*}} - // CHECK-NEXT: |-<<>> - // CHECK-NEXT: |-DeclStmt {{.*}} - // CHECK-NEXT: | `-VarDecl {{.*}} implicit used __range1 'A &&' cinit - // CHECK-NEXT: | `-ExprWithCleanups {{.*}} 'A':'P2718R0::A' xvalue - // CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'A':'P2718R0::A' xvalue extended by Var {{.*}} '__range1' 'A &&' - // CHECK-NEXT: | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) - // CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' - // CHECK-NEXT: | `-MemberExpr {{.*}} '' .g {{.*}} - // CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' lvalue - // CHECK-NEXT: | `-MemberExpr {{.*}} '' .r {{.*}} - // CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'A':'P2718R0::A' xvalue extended by Var {{.*}} '__range1' 'A &&' - // CHECK-NEXT: | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) - // CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' - // CHECK-NEXT: | `-MemberExpr {{.*}} '' .g {{.*}} - // CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' lvalue - // CHECK-NEXT: | `-MemberExpr {{.*}} '' .r {{.*}} - // CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'A':'P2718R0::A' xvalue extended by Var {{.*}} '__range1' 'A &&' - // CHECK-NEXT: | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) - // CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' - // CHECK-NEXT: | `-MemberExpr {{.*}} '' .g {{.*}} - // CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' lvalue - // CHECK-NEXT: | `-MemberExpr {{.*}} '' .r {{.*}} - // CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'A':'P2718R0::A' xvalue extended by Var {{.*}} '__range1' 'A &&' - // CHECK-NEXT: | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) - // CHECK-NEXT: | `-CallExpr {{.*}} 'A':'P2718R0::A' - // CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'A (*)()' - // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'A ()' lvalue Function {{.*}} 'g' 'A ()' for (auto e : g().r().g().r().g().r().g()) bar(e); } +// CHECK: |-FunctionDecl {{.*}} test7 'void ()' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-CXXForRangeStmt {{.*}} +// CHECK-NEXT: | |-<<>> +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __range1 'A &&' cinit +// CHECK-NEXT: | | |-ExprWithCleanups {{.*}} 'A':'P2718R0::A' xvalue +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'A':'P2718R0::A' xvalue extended by Var {{.*}} '__range1' 'A &&' +// CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .g {{.*}} +// CHECK-NEXT: | | | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' lvalue +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .r {{.*}} +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'A':'P2718R0::A' xvalue extended by Var {{.*}} '__range1' 'A &&' +// CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .g {{.*}} +// CHECK-NEXT: | | | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' lvalue +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .r {{.*}} +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'A':'P2718R0::A' xvalue extended by Var {{.*}} '__range1' 'A &&' +// CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .g {{.*}} +// CHECK-NEXT: | | | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' lvalue +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .r {{.*}} +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'A':'P2718R0::A' xvalue extended by Var {{.*}} '__range1' 'A &&' +// CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | `-CallExpr {{.*}} 'A':'P2718R0::A' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'A (*)()' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'A ()' lvalue Function {{.*}} 'g' 'A ()' +// CHECK-NEXT: | | `-typeDetails: RValueReferenceType {{.*}} 'A &&' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'A' sugar +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'A' sugar +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::A' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'A' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __begin1 'const int *' cinit +// CHECK-NEXT: | | |-CXXMemberCallExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .begin {{.*}} +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const P2718R0::A' lvalue +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'A':'P2718R0::A' lvalue Var {{.*}} '__range1' 'A &&' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'const int *' sugar +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __end1 'const int *' cinit +// CHECK-NEXT: | | |-CXXMemberCallExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .end {{.*}} +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const P2718R0::A' lvalue +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'A':'P2718R0::A' lvalue Var {{.*}} '__range1' 'A &&' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'const int *' sugar +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-BinaryOperator {{.*}} 'bool' '!=' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__begin1' 'const int *' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__end1' 'const int *' +// CHECK-NEXT: | |-UnaryOperator {{.*}} 'const int *' lvalue prefix '++' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__begin1' 'const int *' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used e 'int' cinit +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-UnaryOperator {{.*}} 'const int' lvalue prefix '*' cannot overflow +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__begin1' 'const int *' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'int' sugar +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CallExpr {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'void (*)(int)' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'void (int)' lvalue Function {{.*}} 'bar' 'void (int)' +// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'e' 'int' + + // Test basic && dependent context template T dg() { return T(); } + +// CHECK: |-FunctionTemplateDecl {{.*}} dg +// CHECK-NEXT: | |-TemplateTypeParmDecl {{.*}} referenced typename depth 0 index 0 T +// CHECK-NEXT: | |-FunctionDecl {{.*}} dg 'T ()' +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | | `-ReturnStmt {{.*}} +// CHECK-NEXT: | | `-CXXUnresolvedConstructExpr {{.*}} 'T' 'T' +// CHECK-NEXT: | `-FunctionDecl {{.*}} used dg 'P2718R0::A ()' implicit_instantiation +// CHECK-NEXT: | |-TemplateArgument type 'P2718R0::A' +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::A' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'A' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-ReturnStmt {{.*}} +// CHECK-NEXT: | `-ExprWithCleanups {{.*}} 'P2718R0::A' +// CHECK-NEXT: | `-CXXBindTemporaryExpr {{.*}} 'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | `-CXXTemporaryObjectExpr {{.*}} 'P2718R0::A' 'void ()' + template const T &df1(const T &t) { return t; } +// CHECK: |-FunctionTemplateDecl {{.*}} df1 +// CHECK-NEXT: | |-TemplateTypeParmDecl {{.*}} referenced typename depth 0 index 0 T +// CHECK-NEXT: | |-FunctionDecl {{.*}} df1 'const T &(const T &)' +// CHECK-NEXT: | | |-ParmVarDecl {{.*}} referenced t 'const T &' +// CHECK-NEXT: | | | `-typeDetails: LValueReferenceType {{.*}} 'const T &' dependent +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const T' const +// CHECK-NEXT: | | | `-typeDetails: TemplateTypeParmType {{.*}} 'T' dependent depth 0 index 0 +// CHECK-NEXT: | | | `-TemplateTypeParm {{.*}} 'T' +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | | `-ReturnStmt {{.*}} +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'const T' lvalue ParmVar {{.*}} 't' 'const T &' +// CHECK-NEXT: | |-FunctionDecl {{.*}} used df1 'const P2718R0::A &(const P2718R0::A &)' implicit_instantiation +// CHECK-NEXT: | | |-TemplateArgument type 'P2718R0::A' +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'P2718R0::A' +// CHECK-NEXT: | | | `-CXXRecord {{.*}} 'A' +// CHECK-NEXT: | | |-ParmVarDecl {{.*}} used t 'const P2718R0::A &' +// CHECK-NEXT: | | | `-typeDetails: LValueReferenceType {{.*}} 'const P2718R0::A &' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const P2718R0::A' const +// CHECK-NEXT: | | | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'P2718R0::A' sugar typename depth 0 index 0 T +// CHECK-NEXT: | | | |-FunctionTemplate {{.*}} 'df1' +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'P2718R0::A' +// CHECK-NEXT: | | | `-CXXRecord {{.*}} 'A' +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | | `-ReturnStmt {{.*}} +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'const P2718R0::A' lvalue ParmVar {{.*}} 't' 'const P2718R0::A &' +// CHECK-NEXT: | `-FunctionDecl {{.*}} used df1 'const P2718R0::LockGuard &(const P2718R0::LockGuard &)' implicit_instantiation +// CHECK-NEXT: | |-TemplateArgument type 'P2718R0::LockGuard' +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::LockGuard' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'LockGuard' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used t 'const P2718R0::LockGuard &' +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType {{.*}} 'const P2718R0::LockGuard &' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const P2718R0::LockGuard' const +// CHECK-NEXT: | | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'P2718R0::LockGuard' sugar typename depth 0 index 0 T +// CHECK-NEXT: | | |-FunctionTemplate {{.*}} 'df1' +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::LockGuard' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'LockGuard' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-ReturnStmt {{.*}} +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'const P2718R0::LockGuard' lvalue ParmVar {{.*}} 't' 'const P2718R0::LockGuard &' + void test8() { [[maybe_unused]] int sum = 0; - // CHECK: FunctionDecl {{.*}} test8 'void ()' - // CHECK: -CXXForRangeStmt {{.*}} - // CHECK-NEXT: |-<<>> - // CHECK-NEXT: |-DeclStmt {{.*}} - // CHECK-NEXT: | `-VarDecl {{.*}} implicit used __range1 'const P2718R0::A &' cinit - // CHECK-NEXT: | `-ExprWithCleanups {{.*}} 'const P2718R0::A' lvalue - // CHECK-NEXT: | `-CallExpr {{.*}} 'const P2718R0::A' lvalue - // CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'const P2718R0::A &(*)(const P2718R0::A &)' - // CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'const P2718R0::A &(const P2718R0::A &)' lvalue Function {{.*}} 'df1' 'const P2718R0::A &(const P2718R0::A &)' (FunctionTemplate {{.*}} 'df1') - // CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'const P2718R0::A' lvalue extended by Var {{.*}} '__range1' 'const P2718R0::A &' - // CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'const P2718R0::A' - // CHECK-NEXT: | `-CXXBindTemporaryExpr {{.*}} 'P2718R0::A' (CXXTemporary {{.*}}) - // CHECK-NEXT: | `-CallExpr {{.*}} 'P2718R0::A' - // CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'P2718R0::A (*)()' - // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'P2718R0::A ()' lvalue Function {{.*}} 'dg' 'P2718R0::A ()' (FunctionTemplate {{.*}} 'dg') for (auto e : df1(dg())) sum += e; } +// CHECK: |-FunctionDecl {{.*}} test8 'void ()' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used sum 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-attrDetails: UnusedAttr {{.*}} maybe_unused +// CHECK-NEXT: | `-CXXForRangeStmt {{.*}} +// CHECK-NEXT: | |-<<>> +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __range1 'const P2718R0::A &' cinit +// CHECK-NEXT: | | |-ExprWithCleanups {{.*}} 'const P2718R0::A' lvalue +// CHECK-NEXT: | | | `-CallExpr {{.*}} 'const P2718R0::A' lvalue +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'const P2718R0::A &(*)(const P2718R0::A &)' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'const P2718R0::A &(const P2718R0::A &)' lvalue Function {{.*}} 'df1' 'const P2718R0::A &(const P2718R0::A &)' (FunctionTemplate {{.*}} 'df1') +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'const P2718R0::A' lvalue extended by Var {{.*}} '__range1' 'const P2718R0::A &' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const P2718R0::A' +// CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | `-CallExpr {{.*}} 'P2718R0::A' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'P2718R0::A (*)()' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'P2718R0::A ()' lvalue Function {{.*}} 'dg' 'P2718R0::A ()' (FunctionTemplate {{.*}} 'dg') +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType {{.*}} 'const P2718R0::A &' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const P2718R0::A' const +// CHECK-NEXT: | | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'P2718R0::A' sugar typename depth 0 index 0 T +// CHECK-NEXT: | | |-FunctionTemplate {{.*}} 'df1' +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::A' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'A' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __begin1 'const int *' cinit +// CHECK-NEXT: | | |-CXXMemberCallExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .begin {{.*}} +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'const P2718R0::A' lvalue Var {{.*}} '__range1' 'const P2718R0::A &' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'const int *' sugar +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __end1 'const int *' cinit +// CHECK-NEXT: | | |-CXXMemberCallExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .end {{.*}} +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'const P2718R0::A' lvalue Var {{.*}} '__range1' 'const P2718R0::A &' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'const int *' sugar +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-BinaryOperator {{.*}} 'bool' '!=' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__begin1' 'const int *' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__end1' 'const int *' +// CHECK-NEXT: | |-UnaryOperator {{.*}} 'const int *' lvalue prefix '++' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__begin1' 'const int *' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used e 'int' cinit +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-UnaryOperator {{.*}} 'const int' lvalue prefix '*' cannot overflow +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__begin1' 'const int *' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'int' sugar +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundAssignOperator {{.*}} 'int' lvalue '+=' ComputeLHSTy='int' ComputeResultTy='int' +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'sum' 'int' +// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'e' 'int' + template int (&df2(const T *))[3]; const A *dg2(const A &); + +// CHECK: |-FunctionTemplateDecl {{.*}} df2 +// CHECK-NEXT: | |-TemplateTypeParmDecl {{.*}} referenced typename depth 0 index 0 T +// CHECK-NEXT: | |-FunctionDecl {{.*}} df2 'int (&(const T *))[3]' +// CHECK-NEXT: | | `-ParmVarDecl {{.*}} 'const T *' +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'const T *' dependent +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const T' const +// CHECK-NEXT: | | `-typeDetails: TemplateTypeParmType {{.*}} 'T' dependent depth 0 index 0 +// CHECK-NEXT: | | `-TemplateTypeParm {{.*}} 'T' +// CHECK-NEXT: | `-FunctionDecl {{.*}} used df2 'int (&(const P2718R0::A *))[3]' implicit_instantiation +// CHECK-NEXT: | |-TemplateArgument type 'P2718R0::A' +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::A' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'A' +// CHECK-NEXT: | `-ParmVarDecl {{.*}} 'const P2718R0::A *' +// CHECK-NEXT: | `-typeDetails: PointerType {{.*}} 'const P2718R0::A *' +// CHECK-NEXT: | `-qualTypeDetail: QualType {{.*}} 'const P2718R0::A' const +// CHECK-NEXT: | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'P2718R0::A' sugar typename depth 0 index 0 T +// CHECK-NEXT: | |-FunctionTemplate {{.*}} 'df2' +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'P2718R0::A' +// CHECK-NEXT: | `-CXXRecord {{.*}} 'A' +// CHECK-NEXT: |-FunctionDecl {{.*}} used dg2 'const A *(const A &)' +// CHECK-NEXT: | `-ParmVarDecl {{.*}} 'const A &' +// CHECK-NEXT: | `-typeDetails: LValueReferenceType {{.*}} 'const A &' +// CHECK-NEXT: | `-qualTypeDetail: QualType {{.*}} 'const A' const +// CHECK-NEXT: | `-typeDetails: ElaboratedType {{.*}} 'A' sugar +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'P2718R0::A' +// CHECK-NEXT: | `-CXXRecord {{.*}} 'A' + void test9() { - // CHECK: FunctionDecl {{.*}} test9 'void ()' - // CHECK: -CXXForRangeStmt {{.*}} - // CHECK-NEXT: |-<<>> - // CHECK-NEXT: |-DeclStmt {{.*}} - // CHECK-NEXT: | `-VarDecl {{.*}} implicit used __range1 'int (&)[3]' cinit - // CHECK-NEXT: | `-ExprWithCleanups {{.*}} 'int[3]' lvalue - // CHECK-NEXT: | `-CallExpr {{.*}} 'int[3]' lvalue - // CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'int (&(*)(const P2718R0::A *))[3]' - // CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int (&(const P2718R0::A *))[3]' lvalue Function {{.*}} 'df2' 'int (&(const P2718R0::A *))[3]' (FunctionTemplate {{.*}} 'df2') - // CHECK-NEXT: | `-CallExpr {{.*}} 'const A *' - // CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'const A *(*)(const A &)' - // CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'const A *(const A &)' lvalue Function {{.*}} 'dg2' 'const A *(const A &)' - // CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'const A':'const P2718R0::A' lvalue - // CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'const B':'const P2718R0::B' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' - // CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'const B':'const P2718R0::B' - // CHECK-NEXT: | `-CXXBindTemporaryExpr {{.*}} 'B':'P2718R0::B' (CXXTemporary {{.*}}) - // CHECK-NEXT: | `-CXXTemporaryObjectExpr {{.*}} 'B':'P2718R0::B' 'void () noexcept(false)' zeroing for (auto e : df2(dg2(B()))) bar(e); } +// CHECK: |-FunctionDecl {{.*}} test9 'void ()' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-CXXForRangeStmt {{.*}} +// CHECK-NEXT: | |-<<>> +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __range1 'int (&)[3]' cinit +// CHECK-NEXT: | | |-ExprWithCleanups {{.*}} 'int[3]' lvalue +// CHECK-NEXT: | | | `-CallExpr {{.*}} 'int[3]' lvalue +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int (&(*)(const P2718R0::A *))[3]' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int (&(const P2718R0::A *))[3]' lvalue Function {{.*}} 'df2' 'int (&(const P2718R0::A *))[3]' (FunctionTemplate {{.*}} 'df2') +// CHECK-NEXT: | | | `-CallExpr {{.*}} 'const A *' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'const A *(*)(const A &)' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'const A *(const A &)' lvalue Function {{.*}} 'dg2' 'const A *(const A &)' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const A':'const P2718R0::A' lvalue +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'const B':'const P2718R0::B' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const B':'const P2718R0::B' +// CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'B':'P2718R0::B' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | `-CXXTemporaryObjectExpr {{.*}} 'B':'P2718R0::B' 'void () noexcept(false)' zeroing +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType {{.*}} 'int (&)[3]' +// CHECK-NEXT: | | `-typeDetails: ParenType {{.*}} 'int[3]' sugar +// CHECK-NEXT: | | `-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __begin1 'int *' cinit +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | `-typeDetails: DecayedType {{.*}} 'int *' sugar +// CHECK-NEXT: | | |-typeDetails: ParenType {{.*}} 'int[3]' sugar +// CHECK-NEXT: | | | `-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __end1 'int *' cinit +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int *' '+' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK: | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-BinaryOperator {{.*}} 'bool' '!=' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__end1' 'int *' +// CHECK-NEXT: | |-UnaryOperator {{.*}} 'int *' lvalue prefix '++' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used e 'int' cinit +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-UnaryOperator {{.*}} 'int' lvalue prefix '*' cannot overflow +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'int' sugar +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CallExpr {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'void (*)(int)' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'void (int)' lvalue Function {{.*}} 'bar' 'void (int)' +// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'e' 'int' + // Test discard statement && dependent context void test10() { int v[] = {42, 17, 13}; - // CHECK: FunctionDecl {{.*}} test10 'void ()' - // CHECK: -CXXForRangeStmt {{.*}} - // CHECK-NEXT: |-<<>> - // CHECK-NEXT: |-DeclStmt {{.*}} - // CHECK-NEXT: | `-VarDecl {{.*}} implicit used __range1 'int (&)[3]' cinit - // CHECK-NEXT: | `-ExprWithCleanups {{.*}} 'int[3]' lvalue - // CHECK-NEXT: | `-BinaryOperator {{.*}} 'int[3]' lvalue ',' - // CHECK-NEXT: | |-CXXStaticCastExpr {{.*}} 'void' static_cast - // CHECK-NEXT: | | `-CallExpr {{.*}} 'const P2718R0::LockGuard' lvalue - // CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'const P2718R0::LockGuard &(*)(const P2718R0::LockGuard &)' - // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'const P2718R0::LockGuard &(const P2718R0::LockGuard &)' lvalue Function {{.*}} 'df1' 'const P2718R0::LockGuard &(const P2718R0::LockGuard &)' (FunctionTemplate {{.*}} 'df1') - // CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'const LockGuard':'const P2718R0::LockGuard' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' - // CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'const LockGuard':'const P2718R0::LockGuard' - // CHECK-NEXT: | | `-CXXBindTemporaryExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' (CXXTemporary {{.*}}) - // CHECK-NEXT: | | `-CXXTemporaryObjectExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' 'void ()' - // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} 'v' 'int[3]' for ([[maybe_unused]] int x : static_cast(df1(LockGuard())), v) LockGuard guard; - // CHECK: -CXXForRangeStmt {{.*}} - // CHECK-NEXT: |-<<>> - // CHECK-NEXT: |-DeclStmt {{.*}} - // CHECK-NEXT: | `-VarDecl {{.*}} implicit used __range1 'int (&)[3]' cinit - // CHECK-NEXT: | `-ExprWithCleanups {{.*}} 'int[3]' lvalue - // CHECK-NEXT: | `-BinaryOperator {{.*}} 'int[3]' lvalue ',' - // CHECK-NEXT: | |-CStyleCastExpr {{.*}} 'void' - // CHECK-NEXT: | | `-CallExpr {{.*}} 'const P2718R0::LockGuard' lvalue - // CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'const P2718R0::LockGuard &(*)(const P2718R0::LockGuard &)' - // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'const P2718R0::LockGuard &(const P2718R0::LockGuard &)' lvalue Function {{.*}} 'df1' 'const P2718R0::LockGuard &(const P2718R0::LockGuard &)' (FunctionTemplate {{.*}} 'df1') - // CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'const LockGuard':'const P2718R0::LockGuard' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' - // CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'const LockGuard':'const P2718R0::LockGuard' - // CHECK-NEXT: | | `-CXXBindTemporaryExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' (CXXTemporary {{.*}}) - // CHECK-NEXT: | | `-CXXTemporaryObjectExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' 'void ()' - // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} 'v' 'int[3]' for ([[maybe_unused]] int x : (void)df1(LockGuard()), v) LockGuard guard; - // CHECK: -CXXForRangeStmt {{.*}} - // CHECK-NEXT: |-<<>> - // CHECK-NEXT: |-DeclStmt {{.*}} - // CHECK-NEXT: | `-VarDecl {{.*}} implicit used __range1 'int (&)[3]' cinit - // CHECK-NEXT: | `-ExprWithCleanups {{.*}} 'int[3]' lvalue - // CHECK-NEXT: | `-BinaryOperator {{.*}} 'int[3]' lvalue ',' - // CHECK-NEXT: | |-BinaryOperator {{.*}} 'const P2718R0::LockGuard' lvalue ',' - // CHECK-NEXT: | | |-CallExpr {{.*}} 'const P2718R0::LockGuard' lvalue - // CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'const P2718R0::LockGuard &(*)(const P2718R0::LockGuard &)' - // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'const P2718R0::LockGuard &(const P2718R0::LockGuard &)' lvalue Function {{.*}} 'df1' 'const P2718R0::LockGuard &(const P2718R0::LockGuard &)' (FunctionTemplate {{.*}} 'df1') - // CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'const LockGuard':'const P2718R0::LockGuard' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' - // CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const LockGuard':'const P2718R0::LockGuard' - // CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' (CXXTemporary {{.*}}) - // CHECK-NEXT: | | | `-CXXTemporaryObjectExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' 'void ()' - // CHECK-NEXT: | | `-CallExpr {{.*}} 'const P2718R0::LockGuard' lvalue - // CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'const P2718R0::LockGuard &(*)(const P2718R0::LockGuard &)' - // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'const P2718R0::LockGuard &(const P2718R0::LockGuard &)' lvalue Function {{.*}} 'df1' 'const P2718R0::LockGuard &(const P2718R0::LockGuard &)' (FunctionTemplate {{.*}} 'df1') - // CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'const LockGuard':'const P2718R0::LockGuard' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' - // CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'const LockGuard':'const P2718R0::LockGuard' - // CHECK-NEXT: | | `-CXXBindTemporaryExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' (CXXTemporary {{.*}}) - // CHECK-NEXT: | | `-CXXTemporaryObjectExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' 'void ()' - // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} 'v' 'int[3]' for ([[maybe_unused]] int x : df1(LockGuard()), df1(LockGuard()), v) LockGuard guard; } +// CHECK: |-FunctionDecl {{.*}} test10 'void ()' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used v 'int[3]' cinit +// CHECK-NEXT: | | |-InitListExpr {{.*}} 'int[3]' +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 42 +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 17 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 13 +// CHECK-NEXT: | | `-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-CXXForRangeStmt {{.*}} +// CHECK-NEXT: | | |-<<>> +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} implicit used __range1 'int (&)[3]' cinit +// CHECK-NEXT: | | | |-ExprWithCleanups {{.*}} 'int[3]' lvalue +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int[3]' lvalue ',' +// CHECK-NEXT: | | | | |-CXXStaticCastExpr {{.*}} 'void' static_cast +// CHECK-NEXT: | | | | | `-CallExpr {{.*}} 'const P2718R0::LockGuard' lvalue +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'const P2718R0::LockGuard &(*)(const P2718R0::LockGuard &)' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'const P2718R0::LockGuard &(const P2718R0::LockGuard &)' lvalue Function {{.*}} 'df1' 'const P2718R0::LockGuard &(const P2718R0::LockGuard &)' (FunctionTemplate {{.*}} 'df1') +// CHECK-NEXT: | | | | | `-MaterializeTemporaryExpr {{.*}} 'const LockGuard':'const P2718R0::LockGuard' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'const LockGuard':'const P2718R0::LockGuard' +// CHECK-NEXT: | | | | | `-CXXBindTemporaryExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | | | `-CXXTemporaryObjectExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' 'void ()' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} 'v' 'int[3]' +// CHECK-NEXT: | | | `-typeDetails: LValueReferenceType {{.*}} 'int (&)[3]' +// CHECK-NEXT: | | | `-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} implicit used __begin1 'int *' cinit +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | | `-typeDetails: DecayedType {{.*}} 'int *' sugar +// CHECK-NEXT: | | | |-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} implicit used __end1 'int *' cinit +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int *' '+' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK: | | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'bool' '!=' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__end1' 'int *' +// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int *' lvalue prefix '++' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} x 'int' cinit +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-UnaryOperator {{.*}} 'int' lvalue prefix '*' cannot overflow +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-attrDetails: UnusedAttr {{.*}} maybe_unused +// CHECK-NEXT: | | `-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} guard 'LockGuard':'P2718R0::LockGuard' callinit destroyed +// CHECK-NEXT: | | |-CXXConstructExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' 'void ()' +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'LockGuard' sugar +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::LockGuard' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'LockGuard' +// CHECK-NEXT: | |-CXXForRangeStmt {{.*}} +// CHECK-NEXT: | | |-<<>> +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} implicit used __range1 'int (&)[3]' cinit +// CHECK-NEXT: | | | |-ExprWithCleanups {{.*}} 'int[3]' lvalue +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int[3]' lvalue ',' +// CHECK-NEXT: | | | | |-CStyleCastExpr {{.*}} 'void' +// CHECK-NEXT: | | | | | `-CallExpr {{.*}} 'const P2718R0::LockGuard' lvalue +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'const P2718R0::LockGuard &(*)(const P2718R0::LockGuard &)' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'const P2718R0::LockGuard &(const P2718R0::LockGuard &)' lvalue Function {{.*}} 'df1' 'const P2718R0::LockGuard &(const P2718R0::LockGuard &)' (FunctionTemplate {{.*}} 'df1') +// CHECK-NEXT: | | | | | `-MaterializeTemporaryExpr {{.*}} 'const LockGuard':'const P2718R0::LockGuard' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'const LockGuard':'const P2718R0::LockGuard' +// CHECK-NEXT: | | | | | `-CXXBindTemporaryExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | | | `-CXXTemporaryObjectExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' 'void ()' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} 'v' 'int[3]' +// CHECK-NEXT: | | | `-typeDetails: LValueReferenceType {{.*}} 'int (&)[3]' +// CHECK-NEXT: | | | `-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} implicit used __begin1 'int *' cinit +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | | `-typeDetails: DecayedType {{.*}} 'int *' sugar +// CHECK-NEXT: | | | |-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} implicit used __end1 'int *' cinit +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int *' '+' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK: | | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'bool' '!=' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__end1' 'int *' +// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int *' lvalue prefix '++' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} x 'int' cinit +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-UnaryOperator {{.*}} 'int' lvalue prefix '*' cannot overflow +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-attrDetails: UnusedAttr {{.*}} maybe_unused +// CHECK-NEXT: | | `-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} guard 'LockGuard':'P2718R0::LockGuard' callinit destroyed +// CHECK-NEXT: | | |-CXXConstructExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' 'void ()' +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'LockGuard' sugar +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::LockGuard' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'LockGuard' +// CHECK-NEXT: | `-CXXForRangeStmt {{.*}} +// CHECK-NEXT: | |-<<>> +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __range1 'int (&)[3]' cinit +// CHECK-NEXT: | | |-ExprWithCleanups {{.*}} 'int[3]' lvalue +// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int[3]' lvalue ',' +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'const P2718R0::LockGuard' lvalue ',' +// CHECK-NEXT: | | | | |-CallExpr {{.*}} 'const P2718R0::LockGuard' lvalue +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'const P2718R0::LockGuard &(*)(const P2718R0::LockGuard &)' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'const P2718R0::LockGuard &(const P2718R0::LockGuard &)' lvalue Function {{.*}} 'df1' 'const P2718R0::LockGuard &(const P2718R0::LockGuard &)' (FunctionTemplate {{.*}} 'df1') +// CHECK-NEXT: | | | | | `-MaterializeTemporaryExpr {{.*}} 'const LockGuard':'const P2718R0::LockGuard' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'const LockGuard':'const P2718R0::LockGuard' +// CHECK-NEXT: | | | | | `-CXXBindTemporaryExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | | | `-CXXTemporaryObjectExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' 'void ()' +// CHECK-NEXT: | | | | `-CallExpr {{.*}} 'const P2718R0::LockGuard' lvalue +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'const P2718R0::LockGuard &(*)(const P2718R0::LockGuard &)' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'const P2718R0::LockGuard &(const P2718R0::LockGuard &)' lvalue Function {{.*}} 'df1' 'const P2718R0::LockGuard &(const P2718R0::LockGuard &)' (FunctionTemplate {{.*}} 'df1') +// CHECK-NEXT: | | | | `-MaterializeTemporaryExpr {{.*}} 'const LockGuard':'const P2718R0::LockGuard' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'const LockGuard':'const P2718R0::LockGuard' +// CHECK-NEXT: | | | | `-CXXBindTemporaryExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | | `-CXXTemporaryObjectExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' 'void ()' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} 'v' 'int[3]' +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType {{.*}} 'int (&)[3]' +// CHECK-NEXT: | | `-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __begin1 'int *' cinit +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | `-typeDetails: DecayedType {{.*}} 'int *' sugar +// CHECK-NEXT: | | |-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __end1 'int *' cinit +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int *' '+' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK: | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-BinaryOperator {{.*}} 'bool' '!=' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__end1' 'int *' +// CHECK-NEXT: | |-UnaryOperator {{.*}} 'int *' lvalue prefix '++' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} x 'int' cinit +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-UnaryOperator {{.*}} 'int' lvalue prefix '*' cannot overflow +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | |-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-attrDetails: UnusedAttr {{.*}} maybe_unused +// CHECK-NEXT: | `-DeclStmt {{.*}} +// CHECK-NEXT: | `-VarDecl {{.*}} guard 'LockGuard':'P2718R0::LockGuard' callinit destroyed +// CHECK-NEXT: | |-CXXConstructExpr {{.*}} 'LockGuard':'P2718R0::LockGuard' 'void ()' +// CHECK-NEXT: | `-typeDetails: ElaboratedType {{.*}} 'LockGuard' sugar +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'P2718R0::LockGuard' +// CHECK-NEXT: | `-CXXRecord {{.*}} 'LockGuard' + // Test default argument && dependent context template int (&default_arg_fn2(const T & = T()))[3]; + +// CHECK: |-FunctionTemplateDecl {{.*}} default_arg_fn2 +// CHECK-NEXT: | |-TemplateTypeParmDecl {{.*}} referenced typename depth 0 index 0 T +// CHECK-NEXT: | |-FunctionDecl {{.*}} default_arg_fn2 'int (&(const T &))[3]' +// CHECK-NEXT: | | `-ParmVarDecl {{.*}} 'const T &' cinit +// CHECK-NEXT: | | |-CXXUnresolvedConstructExpr {{.*}} 'T' 'T' +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType {{.*}} 'const T &' dependent +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const T' const +// CHECK-NEXT: | | `-typeDetails: TemplateTypeParmType {{.*}} 'T' dependent depth 0 index 0 +// CHECK-NEXT: | | `-TemplateTypeParm {{.*}} 'T' +// CHECK-NEXT: | `-FunctionDecl {{.*}} used default_arg_fn2 'int (&(const P2718R0::A &))[3]' implicit_instantiation +// CHECK-NEXT: | |-TemplateArgument type 'P2718R0::A' +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::A' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'A' +// CHECK-NEXT: | `-ParmVarDecl {{.*}} 'const P2718R0::A &' cinit +// CHECK-NEXT: | |-ExprWithCleanups {{.*}} 'const P2718R0::A' lvalue +// CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'const P2718R0::A' lvalue +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'const P2718R0::A' +// CHECK-NEXT: | | `-CXXBindTemporaryExpr {{.*}} 'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | `-CXXTemporaryObjectExpr {{.*}} 'P2718R0::A' 'void ()' +// CHECK-NEXT: | `-typeDetails: LValueReferenceType {{.*}} 'const P2718R0::A &' +// CHECK-NEXT: | `-qualTypeDetail: QualType {{.*}} 'const P2718R0::A' const +// CHECK-NEXT: | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'P2718R0::A' sugar typename depth 0 index 0 T +// CHECK-NEXT: | |-FunctionTemplate {{.*}} 'default_arg_fn2' +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'P2718R0::A' +// CHECK-NEXT: | `-CXXRecord {{.*}} 'A' + void test11() { for (auto e : default_arg_fn2()) bar(e); } +// CHECK: |-FunctionDecl {{.*}} test11 'void ()' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-CXXForRangeStmt {{.*}} +// CHECK-NEXT: | |-<<>> +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __range1 'int (&)[3]' cinit +// CHECK-NEXT: | | |-ExprWithCleanups {{.*}} 'int[3]' lvalue +// CHECK-NEXT: | | | `-CallExpr {{.*}} 'int[3]' lvalue +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int (&(*)(const P2718R0::A &))[3]' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int (&(const P2718R0::A &))[3]' lvalue Function {{.*}} 'default_arg_fn2' 'int (&(const P2718R0::A &))[3]' (FunctionTemplate {{.*}} 'default_arg_fn2') +// CHECK-NEXT: | | | `-CXXDefaultArgExpr {{.*}} <> 'const P2718R0::A' lvalue has rewritten init +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'const P2718R0::A' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const P2718R0::A' +// CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | `-CXXTemporaryObjectExpr {{.*}} 'P2718R0::A' 'void ()' +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType {{.*}} 'int (&)[3]' +// CHECK-NEXT: | | `-typeDetails: ParenType {{.*}} 'int[3]' sugar +// CHECK-NEXT: | | `-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __begin1 'int *' cinit +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | `-typeDetails: DecayedType {{.*}} 'int *' sugar +// CHECK-NEXT: | | |-typeDetails: ParenType {{.*}} 'int[3]' sugar +// CHECK-NEXT: | | | `-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __end1 'int *' cinit +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int *' '+' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK: | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-BinaryOperator {{.*}} 'bool' '!=' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__end1' 'int *' +// CHECK-NEXT: | |-UnaryOperator {{.*}} 'int *' lvalue prefix '++' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used e 'int' cinit +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-UnaryOperator {{.*}} 'int' lvalue prefix '*' cannot overflow +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'int' sugar +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CallExpr {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'void (*)(int)' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'void (int)' lvalue Function {{.*}} 'bar' 'void (int)' +// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'e' 'int' + template A foo2(const T&, const DefaultA &Default = DefaultA()); +// CHECK: |-FunctionTemplateDecl {{.*}} foo2 +// CHECK-NEXT: | |-TemplateTypeParmDecl {{.*}} referenced typename depth 0 index 0 T +// CHECK-NEXT: | |-FunctionDecl {{.*}} foo2 'A (const T &, const DefaultA &)' +// CHECK-NEXT: | | |-ParmVarDecl {{.*}} 'const T &' +// CHECK-NEXT: | | | `-typeDetails: LValueReferenceType {{.*}} 'const T &' dependent +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const T' const +// CHECK-NEXT: | | | `-typeDetails: TemplateTypeParmType {{.*}} 'T' dependent depth 0 index 0 +// CHECK-NEXT: | | | `-TemplateTypeParm {{.*}} 'T' +// CHECK-NEXT: | | `-ParmVarDecl {{.*}} Default 'const DefaultA &' cinit +// CHECK-NEXT: | | |-ExprWithCleanups {{.*}} 'const DefaultA':'const P2718R0::DefaultA' lvalue +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' lvalue +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' +// CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | `-CXXTemporaryObjectExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' 'void ()' +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType {{.*}} 'const DefaultA &' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const DefaultA' const +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'DefaultA' sugar +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::DefaultA' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'DefaultA' +// CHECK-NEXT: | `-FunctionDecl {{.*}} used foo2 'A (const P2718R0::A &, const DefaultA &)' implicit_instantiation +// CHECK-NEXT: | |-TemplateArgument type 'P2718R0::A' +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::A' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'A' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} 'const P2718R0::A &' +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType {{.*}} 'const P2718R0::A &' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const P2718R0::A' const +// CHECK-NEXT: | | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'P2718R0::A' sugar typename depth 0 index 0 T +// CHECK-NEXT: | | |-FunctionTemplate {{.*}} 'foo2' +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::A' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'A' +// CHECK-NEXT: | `-ParmVarDecl {{.*}} Default 'const DefaultA &' cinit +// CHECK-NEXT: | |-ExprWithCleanups {{.*}} 'const DefaultA':'const P2718R0::DefaultA' lvalue +// CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' lvalue +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' +// CHECK-NEXT: | | `-CXXBindTemporaryExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | `-CXXTemporaryObjectExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' 'void ()' +// CHECK-NEXT: | `-typeDetails: LValueReferenceType {{.*}} 'const DefaultA &' +// CHECK-NEXT: | `-qualTypeDetail: QualType {{.*}} 'const DefaultA' const +// CHECK-NEXT: | `-typeDetails: ElaboratedType {{.*}} 'DefaultA' sugar +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'P2718R0::DefaultA' +// CHECK-NEXT: | `-CXXRecord {{.*}} 'DefaultA' + void test12() { for (auto e : default_arg_fn2(foo2(foo2(foo2(A()))))) bar(e); } +// CHECK: |-FunctionDecl {{.*}} test12 'void ()' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-CXXForRangeStmt {{.*}} +// CHECK-NEXT: | |-<<>> +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __range1 'int (&)[3]' cinit +// CHECK-NEXT: | | |-ExprWithCleanups {{.*}} 'int[3]' lvalue +// CHECK-NEXT: | | | `-CallExpr {{.*}} 'int[3]' lvalue +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int (&(*)(const P2718R0::A &))[3]' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int (&(const P2718R0::A &))[3]' lvalue Function {{.*}} 'default_arg_fn2' 'int (&(const P2718R0::A &))[3]' (FunctionTemplate {{.*}} 'default_arg_fn2') +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'const A':'const P2718R0::A' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const A':'const P2718R0::A' +// CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | `-CallExpr {{.*}} 'A':'P2718R0::A' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'A (*)(const P2718R0::A &, const DefaultA &)' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'A (const P2718R0::A &, const DefaultA &)' lvalue Function {{.*}} 'foo2' 'A (const P2718R0::A &, const DefaultA &)' (FunctionTemplate {{.*}} 'foo2') +// CHECK-NEXT: | | | |-MaterializeTemporaryExpr {{.*}} 'const A':'const P2718R0::A' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'const A':'const P2718R0::A' +// CHECK-NEXT: | | | | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | | `-CallExpr {{.*}} 'A':'P2718R0::A' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'A (*)(const P2718R0::A &, const DefaultA &)' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'A (const P2718R0::A &, const DefaultA &)' lvalue Function {{.*}} 'foo2' 'A (const P2718R0::A &, const DefaultA &)' (FunctionTemplate {{.*}} 'foo2') +// CHECK-NEXT: | | | | |-MaterializeTemporaryExpr {{.*}} 'const A':'const P2718R0::A' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'const A':'const P2718R0::A' +// CHECK-NEXT: | | | | | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | | | `-CallExpr {{.*}} 'A':'P2718R0::A' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'A (*)(const P2718R0::A &, const DefaultA &)' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'A (const P2718R0::A &, const DefaultA &)' lvalue Function {{.*}} 'foo2' 'A (const P2718R0::A &, const DefaultA &)' (FunctionTemplate {{.*}} 'foo2') +// CHECK-NEXT: | | | | | |-MaterializeTemporaryExpr {{.*}} 'const A':'const P2718R0::A' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'const A':'const P2718R0::A' +// CHECK-NEXT: | | | | | | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | | | | `-CXXTemporaryObjectExpr {{.*}} 'A':'P2718R0::A' 'void ()' +// CHECK-NEXT: | | | | | `-CXXDefaultArgExpr {{.*}} <> 'const DefaultA':'const P2718R0::DefaultA' lvalue has rewritten init +// CHECK-NEXT: | | | | | `-MaterializeTemporaryExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' +// CHECK-NEXT: | | | | | `-CXXBindTemporaryExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | | | `-CXXTemporaryObjectExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' 'void ()' +// CHECK-NEXT: | | | | `-CXXDefaultArgExpr {{.*}} <> 'const DefaultA':'const P2718R0::DefaultA' lvalue has rewritten init +// CHECK-NEXT: | | | | `-MaterializeTemporaryExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' +// CHECK-NEXT: | | | | `-CXXBindTemporaryExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | | `-CXXTemporaryObjectExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' 'void ()' +// CHECK-NEXT: | | | `-CXXDefaultArgExpr {{.*}} <> 'const DefaultA':'const P2718R0::DefaultA' lvalue has rewritten init +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' lvalue extended by Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const DefaultA':'const P2718R0::DefaultA' +// CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | `-CXXTemporaryObjectExpr {{.*}} 'DefaultA':'P2718R0::DefaultA' 'void ()' +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType {{.*}} 'int (&)[3]' +// CHECK-NEXT: | | `-typeDetails: ParenType {{.*}} 'int[3]' sugar +// CHECK-NEXT: | | `-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __begin1 'int *' cinit +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | `-typeDetails: DecayedType {{.*}} 'int *' sugar +// CHECK-NEXT: | | |-typeDetails: ParenType {{.*}} 'int[3]' sugar +// CHECK-NEXT: | | | `-typeDetails: ConstantArrayType {{.*}} 'int[3]' 3 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __end1 'int *' cinit +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int *' '+' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int[3]' lvalue Var {{.*}} '__range1' 'int (&)[3]' +// CHECK: | | `-typeDetails: AutoType {{.*}} 'int *' sugar +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-BinaryOperator {{.*}} 'bool' '!=' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__end1' 'int *' +// CHECK-NEXT: | |-UnaryOperator {{.*}} 'int *' lvalue prefix '++' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used e 'int' cinit +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-UnaryOperator {{.*}} 'int' lvalue prefix '*' cannot overflow +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} '__begin1' 'int *' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'int' sugar +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CallExpr {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'void (*)(int)' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'void (int)' lvalue Function {{.*}} 'bar' 'void (int)' +// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'e' 'int' + // Test member call && dependent context void test13() { - // CHECK: FunctionDecl {{.*}} test13 'void ()' - // CHECK: -CXXForRangeStmt {{.*}} - // CHECK-NEXT: |-<<>> - // CHECK-NEXT: |-DeclStmt {{.*}} - // CHECK-NEXT: | `-VarDecl {{.*}} implicit used __range1 'A &&' cinit - // CHECK-NEXT: | `-ExprWithCleanups {{.*}} 'A':'P2718R0::A' xvalue - // CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'A':'P2718R0::A' xvalue extended by Var {{.*}} '__range1' 'A &&' - // CHECK-NEXT: | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) - // CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' - // CHECK-NEXT: | `-MemberExpr {{.*}} '' .g {{.*}} - // CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' lvalue - // CHECK-NEXT: | `-MemberExpr {{.*}} '' .r {{.*}} - // CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'A':'P2718R0::A' xvalue extended by Var {{.*}} '__range1' 'A &&' - // CHECK-NEXT: | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) - // CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' - // CHECK-NEXT: | `-MemberExpr {{.*}} '' .g {{.*}} - // CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' lvalue - // CHECK-NEXT: | `-MemberExpr {{.*}} '' .r {{.*}} - // CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'A':'P2718R0::A' xvalue extended by Var {{.*}} '__range1' 'A &&' - // CHECK-NEXT: | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) - // CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' - // CHECK-NEXT: | `-MemberExpr {{.*}} '' .g {{.*}} - // CHECK-NEXT: | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' lvalue - // CHECK-NEXT: | `-MemberExpr {{.*}} '' .r {{.*}} - // CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'P2718R0::A' xvalue extended by Var {{.*}} '__range1' 'A &&' - // CHECK-NEXT: | `-CXXBindTemporaryExpr {{.*}} 'P2718R0::A' (CXXTemporary {{.*}}) - // CHECK-NEXT: | `-CallExpr {{.*}} 'P2718R0::A' - // CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'P2718R0::A (*)()' - // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'P2718R0::A ()' lvalue Function {{.*}} 'dg' 'P2718R0::A ()' (FunctionTemplate {{.*}} 'dg') for (auto e : dg().r().g().r().g().r().g()) bar(e); } +// CHECK: |-FunctionDecl {{.*}} test13 'void ()' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-CXXForRangeStmt {{.*}} +// CHECK-NEXT: | |-<<>> +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __range1 'A &&' cinit +// CHECK-NEXT: | | |-ExprWithCleanups {{.*}} 'A':'P2718R0::A' xvalue +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'A':'P2718R0::A' xvalue extended by Var {{.*}} '__range1' 'A &&' +// CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .g {{.*}} +// CHECK-NEXT: | | | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' lvalue +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .r {{.*}} +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'A':'P2718R0::A' xvalue extended by Var {{.*}} '__range1' 'A &&' +// CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .g {{.*}} +// CHECK-NEXT: | | | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' lvalue +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .r {{.*}} +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'A':'P2718R0::A' xvalue extended by Var {{.*}} '__range1' 'A &&' +// CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'A':'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .g {{.*}} +// CHECK-NEXT: | | | `-CXXMemberCallExpr {{.*}} 'A':'P2718R0::A' lvalue +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .r {{.*}} +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'P2718R0::A' xvalue extended by Var {{.*}} '__range1' 'A &&' +// CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'P2718R0::A' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | `-CallExpr {{.*}} 'P2718R0::A' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'P2718R0::A (*)()' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'P2718R0::A ()' lvalue Function {{.*}} 'dg' 'P2718R0::A ()' (FunctionTemplate {{.*}} 'dg') +// CHECK-NEXT: | | `-typeDetails: RValueReferenceType {{.*}} 'A &&' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'A' sugar +// CHECK-NEXT: | | `-typeDetails: ElaboratedType {{.*}} 'A' sugar +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'P2718R0::A' +// CHECK-NEXT: | | `-CXXRecord {{.*}} 'A' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __begin1 'const int *' cinit +// CHECK-NEXT: | | |-CXXMemberCallExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .begin {{.*}} +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const P2718R0::A' lvalue +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'A':'P2718R0::A' lvalue Var {{.*}} '__range1' 'A &&' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'const int *' sugar +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __end1 'const int *' cinit +// CHECK-NEXT: | | |-CXXMemberCallExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-MemberExpr {{.*}} '' .end {{.*}} +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const P2718R0::A' lvalue +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'A':'P2718R0::A' lvalue Var {{.*}} '__range1' 'A &&' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'const int *' sugar +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-BinaryOperator {{.*}} 'bool' '!=' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__begin1' 'const int *' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__end1' 'const int *' +// CHECK-NEXT: | |-UnaryOperator {{.*}} 'const int *' lvalue prefix '++' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__begin1' 'const int *' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used e 'int' cinit +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-UnaryOperator {{.*}} 'const int' lvalue prefix '*' cannot overflow +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__begin1' 'const int *' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'int' sugar +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CallExpr {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'void (*)(int)' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'void (int)' lvalue Function {{.*}} 'bar' 'void (int)' +// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'e' 'int' + + extern "C" void exit(int); +// CHECK: |-LinkageSpecDecl {{.*}} C +// CHECK-NEXT: | `-FunctionDecl {{.*}} used exit 'void (int)' +// CHECK-NEXT: | `-ParmVarDecl {{.*}} 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' + struct A14 { int arr[1]; ~A14() noexcept(false) { throw 42; } }; +// CHECK: |-CXXRecordDecl {{.*}} referenced struct A14 definition +// CHECK-NEXT: | |-DefinitionData aggregate standard_layout has_constexpr_non_copy_move_ctor +// CHECK-NEXT: | | |-DefaultConstructor exists trivial constexpr needs_implicit defaulted_is_constexpr +// CHECK-NEXT: | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveConstructor +// CHECK-NEXT: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveAssignment +// CHECK-NEXT: | | `-Destructor non_trivial user_declared +// CHECK-NEXT: | |-CXXRecordDecl {{.*}} implicit referenced struct A14 +// CHECK-NEXT: | |-FieldDecl {{.*}} referenced arr 'int[1]' +// CHECK-NEXT: | `-CXXDestructorDecl {{.*}} used ~A14 'void () noexcept(false)' implicit-inline +// CHECK-NEXT: | |-CompoundStmt {{.*}} +// CHECK-NEXT: | | `-CXXThrowExpr {{.*}} 'void' +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 42 +// CHECK-NEXT: | `-attrDetails: InferredNoReturnAttr {{.*}} <> Implicit + struct B14 { int x; const A14 &a = A14{{0}}; @@ -466,46 +1678,171 @@ struct B14 { void test14() { // The ExprWithCleanups in CXXDefaultInitExpr will be ignored. - - // CHECK: FunctionDecl {{.*}} test14 'void ()' - // CHECK: -CXXForRangeStmt {{.*}} - // CHECK-NEXT: |-<<>> - // CHECK-NEXT: |-DeclStmt {{.*}} - // CHECK-NEXT: | `-VarDecl {{.*}} implicit used __range1 'const int (&)[1]' cinit - // CHECK-NEXT: | `-ExprWithCleanups {{.*}} 'const int[1]' lvalue - // CHECK-NEXT: | `-MemberExpr {{.*}} 'const int[1]' lvalue .arr {{.*}} - // CHECK-NEXT: | `-MemberExpr {{.*}} 'const A14':'const P2718R0::A14' lvalue .a {{.*}} - // CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'B14':'P2718R0::B14' xvalue extended by Var {{.*}} '__range1' 'const int (&)[1]' - // CHECK-NEXT: | `-CXXFunctionalCastExpr {{.*}} 'B14':'P2718R0::B14' functional cast to B14 - // CHECK-NEXT: | `-InitListExpr {{.*}} 'B14':'P2718R0::B14' - // CHECK-NEXT: | |-IntegerLiteral {{.*}} 'int' 0 - // CHECK-NEXT: | `-CXXDefaultInitExpr {{.*}} 'const A14':'const P2718R0::A14' lvalue has rewritten init - // CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'const A14':'const P2718R0::A14' lvalue extended by Var {{.*}} '__range1' 'const int (&)[1]' - // CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'const A14':'const P2718R0::A14' - // CHECK-NEXT: | `-CXXFunctionalCastExpr {{.*}} 'A14':'P2718R0::A14' functional cast to A14 - // CHECK-NEXT: | `-CXXBindTemporaryExpr {{.*}} 'A14':'P2718R0::A14' (CXXTemporary {{.*}}) - // CHECK-NEXT: | `-InitListExpr {{.*}} 'A14':'P2718R0::A14' - // CHECK-NEXT: | `-InitListExpr {{.*}} 'int[1]' - // CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 for (auto &&x : B14{0}.a.arr) { exit(0); } - - // CHECK: -CXXForRangeStmt {{.*}} - // CHECK-NEXT: |-<<>> - // CHECK-NEXT: |-DeclStmt {{.*}} - // CHECK-NEXT: | `-VarDecl {{.*}} col:19 implicit used __range1 'B14 &&' cinit - // CHECK-NEXT: | `-ExprWithCleanups {{.*}} 'B14':'P2718R0::B14' xvalue - // CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'B14':'P2718R0::B14' xvalue extended by Var {{.*}} '__range1' 'B14 &&' - // CHECK-NEXT: | `-CXXFunctionalCastExpr {{.*}} 'B14':'P2718R0::B14' functional cast to B14 - // CHECK-NEXT: | `-InitListExpr {{.*}} 'B14':'P2718R0::B14' - // CHECK-NEXT: | |-IntegerLiteral {{.*}} 'int' 0 - // CHECK-NEXT: | `-CXXDefaultInitExpr {{.*}} 'const A14':'const P2718R0::A14' lvalue has rewritten init - // CHECK-NEXT: | `-MaterializeTemporaryExpr {{.*}} 'const A14':'const P2718R0::A14' lvalue extended by Var {{.*}} '__range1' 'B14 &&' - // CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'const A14':'const P2718R0::A14' - // CHECK-NEXT: | `-CXXFunctionalCastExpr {{.*}} 'A14':'P2718R0::A14' functional cast to A14 - // CHECK-NEXT: | `-CXXBindTemporaryExpr {{.*}} 'A14':'P2718R0::A14' (CXXTemporary {{.*}}) - // CHECK-NEXT: | `-InitListExpr {{.*}} 'A14':'P2718R0::A14' - // CHECK-NEXT: | `-InitListExpr {{.*}} 'int[1]' - // CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 for (auto &&x : B14{0}) { exit(0); } } } // namespace P2718R0 + +// CHECK: |-CXXRecordDecl {{.*}} referenced struct B14 definition +// CHECK-NEXT: | |-DefinitionData pass_in_registers aggregate trivially_copyable literal has_constexpr_non_copy_move_ctor +// CHECK-NEXT: | | |-DefaultConstructor exists non_trivial constexpr needs_implicit defaulted_is_constexpr +// CHECK-NEXT: | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK-NEXT: | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param +// CHECK-NEXT: | | |-MoveAssignment exists trivial needs_implicit +// CHECK-NEXT: | | `-Destructor simple irrelevant trivial constexpr +// CHECK-NEXT: | |-CXXRecordDecl {{.*}} implicit struct B14 +// CHECK-NEXT: | |-FieldDecl {{.*}} x 'int' +// CHECK-NEXT: | |-FieldDecl {{.*}} referenced a 'const A14 &' +// CHECK-NEXT: | | `-ExprWithCleanups {{.*}} 'const A14':'const P2718R0::A14' lvalue +// CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'const A14':'const P2718R0::A14' lvalue extended by Field {{.*}} 'a' 'const A14 &' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'const A14':'const P2718R0::A14' +// CHECK-NEXT: | | `-CXXFunctionalCastExpr {{.*}} 'A14':'P2718R0::A14' functional cast to A14 +// CHECK-NEXT: | | `-CXXBindTemporaryExpr {{.*}} 'A14':'P2718R0::A14' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | `-InitListExpr {{.*}} 'A14':'P2718R0::A14' +// CHECK-NEXT: | | `-InitListExpr {{.*}} 'int[1]' +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | |-CXXMethodDecl {{.*}} used begin 'const int *()' implicit-inline +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | | `-ReturnStmt {{.*}} +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | | `-MemberExpr {{.*}} 'const int[1]' lvalue .arr {{.*}} +// CHECK-NEXT: | | `-MemberExpr {{.*}} 'const A14':'const P2718R0::A14' lvalue ->a {{.*}} +// CHECK-NEXT: | | `-CXXThisExpr {{.*}} 'P2718R0::B14 *' implicit this +// CHECK-NEXT: | |-CXXMethodDecl {{.*}} used end 'const int *()' implicit-inline +// CHECK-NEXT: | | `-CompoundStmt {{.*}} +// CHECK-NEXT: | | `-ReturnStmt {{.*}} +// CHECK-NEXT: | | `-UnaryOperator {{.*}} 'const int *' prefix '&' cannot overflow +// CHECK-NEXT: | | `-ArraySubscriptExpr {{.*}} 'const int' lvalue +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-MemberExpr {{.*}} 'const int[1]' lvalue .arr {{.*}} +// CHECK-NEXT: | | | `-MemberExpr {{.*}} 'const A14':'const P2718R0::A14' lvalue ->a {{.*}} +// CHECK-NEXT: | | | `-CXXThisExpr {{.*}} 'P2718R0::B14 *' implicit this +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | `-CXXDestructorDecl {{.*}} implicit referenced constexpr ~B14 'void () noexcept' inline default trivial +// CHECK-NEXT: `-FunctionDecl {{.*}} test14 'void ()' +// CHECK-NEXT: `-CompoundStmt {{.*}} +// CHECK-NEXT: |-CXXForRangeStmt {{.*}} +// CHECK-NEXT: | |-<<>> +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __range1 'const int (&)[1]' cinit +// CHECK-NEXT: | | |-ExprWithCleanups {{.*}} 'const int[1]' lvalue +// CHECK-NEXT: | | | `-MemberExpr {{.*}} 'const int[1]' lvalue .arr {{.*}} +// CHECK-NEXT: | | | `-MemberExpr {{.*}} 'const A14':'const P2718R0::A14' lvalue .a {{.*}} +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'B14':'P2718R0::B14' xvalue extended by Var {{.*}} '__range1' 'const int (&)[1]' +// CHECK-NEXT: | | | `-CXXFunctionalCastExpr {{.*}} 'B14':'P2718R0::B14' functional cast to B14 +// CHECK-NEXT: | | | `-InitListExpr {{.*}} 'B14':'P2718R0::B14' +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-CXXDefaultInitExpr {{.*}} 'const A14':'const P2718R0::A14' lvalue has rewritten init +// CHECK-NEXT: | | | `-MaterializeTemporaryExpr {{.*}} 'const A14':'const P2718R0::A14' lvalue extended by Var {{.*}} '__range1' 'const int (&)[1]' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const A14':'const P2718R0::A14' +// CHECK-NEXT: | | | `-CXXFunctionalCastExpr {{.*}} 'A14':'P2718R0::A14' functional cast to A14 +// CHECK-NEXT: | | | `-CXXBindTemporaryExpr {{.*}} 'A14':'P2718R0::A14' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | | `-InitListExpr {{.*}} 'A14':'P2718R0::A14' +// CHECK-NEXT: | | | `-InitListExpr {{.*}} 'int[1]' +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType {{.*}} 'const int (&)[1]' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int[1]' const +// CHECK-NEXT: | | `-typeDetails: ConstantArrayType {{.*}} 'int[1]' 1 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __begin1 'const int *' cinit +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'const int[1]' lvalue Var {{.*}} '__range1' 'const int (&)[1]' +// CHECK-NEXT: | | `-typeDetails: AutoType {{.*}} 'const int *' sugar +// CHECK-NEXT: | | `-typeDetails: DecayedType {{.*}} 'const int *' sugar +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'const int[1]' const +// CHECK-NEXT: | | | `-typeDetails: ConstantArrayType {{.*}} 'int[1]' 1 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} implicit used __end1 'const int *' cinit +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'const int *' '+' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'const int *' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'const int[1]' lvalue Var {{.*}} '__range1' 'const int (&)[1]' +// CHECK: | | `-typeDetails: AutoType {{.*}} 'const int *' sugar +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-BinaryOperator {{.*}} 'bool' '!=' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__begin1' 'const int *' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__end1' 'const int *' +// CHECK-NEXT: | |-UnaryOperator {{.*}} 'const int *' lvalue prefix '++' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__begin1' 'const int *' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} x 'const int &' cinit +// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'const int' lvalue prefix '*' cannot overflow +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__begin1' 'const int *' +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType {{.*}} 'const int &' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-CallExpr {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'void (*)(int)' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'void (int)' lvalue Function {{.*}} 'exit' 'void (int)' +// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: `-CXXForRangeStmt {{.*}} +// CHECK-NEXT: |-<<>> +// CHECK-NEXT: |-DeclStmt {{.*}} +// CHECK-NEXT: | `-VarDecl {{.*}} implicit used __range1 'B14 &&' cinit +// CHECK-NEXT: | |-ExprWithCleanups {{.*}} 'B14':'P2718R0::B14' xvalue +// CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'B14':'P2718R0::B14' xvalue extended by Var {{.*}} '__range1' 'B14 &&' +// CHECK-NEXT: | | `-CXXFunctionalCastExpr {{.*}} 'B14':'P2718R0::B14' functional cast to B14 +// CHECK-NEXT: | | `-InitListExpr {{.*}} 'B14':'P2718R0::B14' +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-CXXDefaultInitExpr {{.*}} 'const A14':'const P2718R0::A14' lvalue has rewritten init +// CHECK-NEXT: | | `-MaterializeTemporaryExpr {{.*}} 'const A14':'const P2718R0::A14' lvalue extended by Var {{.*}} '__range1' 'B14 &&' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'const A14':'const P2718R0::A14' +// CHECK-NEXT: | | `-CXXFunctionalCastExpr {{.*}} 'A14':'P2718R0::A14' functional cast to A14 +// CHECK-NEXT: | | `-CXXBindTemporaryExpr {{.*}} 'A14':'P2718R0::A14' (CXXTemporary {{.*}}) +// CHECK-NEXT: | | `-InitListExpr {{.*}} 'A14':'P2718R0::A14' +// CHECK-NEXT: | | `-InitListExpr {{.*}} 'int[1]' +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | `-typeDetails: RValueReferenceType {{.*}} 'B14 &&' +// CHECK-NEXT: | `-typeDetails: AutoType {{.*}} 'B14' sugar +// CHECK-NEXT: | `-typeDetails: ElaboratedType {{.*}} 'B14' sugar +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'P2718R0::B14' +// CHECK-NEXT: | `-CXXRecord {{.*}} 'B14' +// CHECK-NEXT: |-DeclStmt {{.*}} +// CHECK-NEXT: | `-VarDecl {{.*}} implicit used __begin1 'const int *' cinit +// CHECK-NEXT: | |-CXXMemberCallExpr {{.*}} 'const int *' +// CHECK-NEXT: | | `-MemberExpr {{.*}} '' .begin {{.*}} +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'B14':'P2718R0::B14' lvalue Var {{.*}} '__range1' 'B14 &&' +// CHECK-NEXT: | `-typeDetails: AutoType {{.*}} 'const int *' sugar +// CHECK-NEXT: | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: |-DeclStmt {{.*}} +// CHECK-NEXT: | `-VarDecl {{.*}} implicit used __end1 'const int *' cinit +// CHECK-NEXT: | |-CXXMemberCallExpr {{.*}} 'const int *' +// CHECK-NEXT: | | `-MemberExpr {{.*}} '' .end {{.*}} +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'B14':'P2718R0::B14' lvalue Var {{.*}} '__range1' 'B14 &&' +// CHECK-NEXT: | `-typeDetails: AutoType {{.*}} 'const int *' sugar +// CHECK-NEXT: | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: |-BinaryOperator {{.*}} 'bool' '!=' +// CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__begin1' 'const int *' +// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__end1' 'const int *' +// CHECK-NEXT: |-UnaryOperator {{.*}} 'const int *' lvalue prefix '++' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__begin1' 'const int *' +// CHECK-NEXT: |-DeclStmt {{.*}} +// CHECK-NEXT: | `-VarDecl {{.*}} x 'const int &' cinit +// CHECK-NEXT: | |-UnaryOperator {{.*}} 'const int' lvalue prefix '*' cannot overflow +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'const int *' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'const int *' lvalue Var {{.*}} '__begin1' 'const int *' +// CHECK-NEXT: | `-typeDetails: LValueReferenceType {{.*}} 'const int &' +// CHECK-NEXT: | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: `-CompoundStmt {{.*}} +// CHECK-NEXT: `-CallExpr {{.*}} 'void' +// CHECK-NEXT: |-ImplicitCastExpr {{.*}} 'void (*)(int)' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'void (int)' lvalue Function {{.*}} 'exit' 'void (int)' +// CHECK-NEXT: `-IntegerLiteral {{.*}} 'int' 0 diff --git a/clang/test/AST/ast-dump-fpfeatures.cpp b/clang/test/AST/ast-dump-fpfeatures.cpp index eeead3462c0ec..d7f7d9ea9f55f 100644 --- a/clang/test/AST/ast-dump-fpfeatures.cpp +++ b/clang/test/AST/ast-dump-fpfeatures.cpp @@ -36,16 +36,16 @@ float func_03(float x) { // CHECK: FunctionDecl {{.*}} func_02 'float (float)' // CHECK-NEXT: TemplateArgument type 'float' // CHECK-NEXT: BuiltinType {{.*}} 'float' -// CHECK-NEXT: ParmVarDecl {{.*}} x 'float' -// CHECK-NEXT: CompoundStmt -// CHECK-NEXT: ReturnStmt -// CHECK-NEXT: CallExpr {{.*}} FPContractMode=1 +// CHECK: ParmVarDecl {{.*}} x 'float' +// CHECK: CompoundStmt +// CHECK: ReturnStmt +// CHECK: CallExpr {{.*}} FPContractMode=1 // CHECK: FunctionDecl {{.*}} func_03 'float (float)' // CHECK-NEXT: ParmVarDecl {{.*}} x 'float' -// CHECK-NEXT: CompoundStmt -// CHECK-NEXT: ReturnStmt -// CHECK-NEXT: CallExpr {{.*}} FPContractMode=0 +// CHECK: CompoundStmt +// CHECK: ReturnStmt +// CHECK: CallExpr {{.*}} FPContractMode=0 int func_04(float x) { #pragma STDC FP_CONTRACT ON @@ -54,9 +54,9 @@ int func_04(float x) { // CHECK: FunctionDecl {{.*}} func_04 'int (float)' // CHECK-NEXT: ParmVarDecl {{.*}} x 'float' -// CHECK-NEXT: CompoundStmt -// CHECK-NEXT: ReturnStmt -// CHECK-NEXT: ImplicitCastExpr {{.*}} 'int' FPContractMode=1 +// CHECK: CompoundStmt +// CHECK: ReturnStmt +// CHECK: ImplicitCastExpr {{.*}} 'int' FPContractMode=1 float func_05(double x) { #pragma STDC FP_CONTRACT ON @@ -65,9 +65,9 @@ float func_05(double x) { // CHECK: FunctionDecl {{.*}} func_05 'float (double)' // CHECK-NEXT: ParmVarDecl {{.*}} x 'double' -// CHECK-NEXT: CompoundStmt -// CHECK-NEXT: ReturnStmt -// CHECK-NEXT: CStyleCastExpr {{.*}} FPContractMode=1 +// CHECK: CompoundStmt +// CHECK: ReturnStmt +// CHECK: CStyleCastExpr {{.*}} FPContractMode=1 float func_06(double x) { #pragma STDC FP_CONTRACT ON @@ -76,9 +76,9 @@ float func_06(double x) { // CHECK: FunctionDecl {{.*}} func_06 'float (double)' // CHECK-NEXT: ParmVarDecl {{.*}} x 'double' -// CHECK-NEXT: CompoundStmt -// CHECK-NEXT: ReturnStmt -// CHECK-NEXT: CXXFunctionalCastExpr {{.*}} FPContractMode=1 +// CHECK: CompoundStmt +// CHECK: ReturnStmt +// CHECK: CXXFunctionalCastExpr {{.*}} FPContractMode=1 float func_07(double x) { #pragma STDC FP_CONTRACT ON @@ -87,9 +87,9 @@ float func_07(double x) { // CHECK: FunctionDecl {{.*}} func_07 'float (double)' // CHECK-NEXT: ParmVarDecl {{.*}} x 'double' -// CHECK-NEXT: CompoundStmt -// CHECK-NEXT: ReturnStmt -// CHECK-NEXT: CXXStaticCastExpr {{.*}} FPContractMode=1 +// CHECK: CompoundStmt +// CHECK: ReturnStmt +// CHECK: CXXStaticCastExpr {{.*}} FPContractMode=1 #pragma STDC FENV_ROUND FE_DOWNWARD diff --git a/clang/test/AST/ast-dump-funcs-json.cpp b/clang/test/AST/ast-dump-funcs-json.cpp index 957df5cea6ec5..5c1d9e3bddd85 100644 --- a/clang/test/AST/ast-dump-funcs-json.cpp +++ b/clang/test/AST/ast-dump-funcs-json.cpp @@ -1,1415 +1,1568 @@ -// RUN: %clang_cc1 -triple x86_64-unknown-unknown -ast-dump=json -ast-dump-filter Test %s | FileCheck %s - -struct S { - void Test1(); - void Test2() const; - void Test3() volatile; - void Test4() &; - void Test5() &&; - virtual void Test6(float, int = 12); - virtual void Test7() = 0; -}; - -struct T : S { // T is not referenced, but S is - void Test6(float, int = 100) override; -}; - -struct U { - void Test1(); -}; -void U::Test1() {} // parent - -void Test1(); -void Test2(void); -void Test3(int a, int b); -void Test4(int a, int b = 12); -constexpr void Test5(void); -static void Test6(void); -extern void Test7(void); -inline void Test8(void); -void Test9(void) noexcept; -void Test10(void) noexcept(false); -void Test11(void) noexcept(1); - -template -T Test12(T&); - -void Test13(int) {} -void Test14(int, ...) {} - -int main() { - Test1(); // Causes this to be marked 'used' -} - -template -struct TestFriends { - friend Ts...; -}; - -// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 124, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 4, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 119, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 130, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test1", -// CHECK-NEXT: "mangledName": "_ZN1S5Test1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: } -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 140, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 5, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 135, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 148, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test2", -// CHECK-NEXT: "mangledName": "_ZNK1S5Test2Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void () const" -// CHECK-NEXT: } -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 162, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 6, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 157, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 170, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test3", -// CHECK-NEXT: "mangledName": "_ZNV1S5Test3Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void () volatile" -// CHECK-NEXT: } -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 187, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 7, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 182, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 195, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test4", -// CHECK-NEXT: "mangledName": "_ZNR1S5Test4Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void () &" -// CHECK-NEXT: } -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 205, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 8, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 200, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 213, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test5", -// CHECK-NEXT: "mangledName": "_ZNO1S5Test5Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void () &&" -// CHECK-NEXT: } -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 232, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 9, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 219, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 7 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 253, -// CHECK-NEXT: "col": 37, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test6", -// CHECK-NEXT: "mangledName": "_ZN1S5Test6Efi", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (float, int)" -// CHECK-NEXT: }, -// CHECK-NEXT: "virtual": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 243, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 238, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 238, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 249, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 245, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 251, -// CHECK-NEXT: "col": 35, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 251, -// CHECK-NEXT: "col": 35, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 251, -// CHECK-NEXT: "col": 35, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 271, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 10, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 258, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 7 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 281, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test7", -// CHECK-NEXT: "mangledName": "_ZN1S5Test7Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "virtual": true, -// CHECK-NEXT: "pure": true -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 343, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 14, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 338, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 367, -// CHECK-NEXT: "col": 32, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test6", -// CHECK-NEXT: "mangledName": "_ZN1T5Test6Efi", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (float, int)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 354, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 349, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 349, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 360, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 356, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 362, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 362, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 362, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "100" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OverrideAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 367, -// CHECK-NEXT: "col": 32, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 367, -// CHECK-NEXT: "col": 32, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 399, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 18, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 394, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 405, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test1", -// CHECK-NEXT: "mangledName": "_ZN1U5Test1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: } -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 419, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 20, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 411, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 428, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "parentDeclContextId": "0x{{.*}}", -// CHECK-NEXT: "previousDecl": "0x{{.*}}", -// CHECK-NEXT: "name": "Test1", -// CHECK-NEXT: "mangledName": "_ZN1U5Test1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 427, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 428, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 446, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 22, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 441, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 452, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "Test1", -// CHECK-NEXT: "mangledName": "_Z5Test1v", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: } -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 460, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 23, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 455, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 470, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test2", -// CHECK-NEXT: "mangledName": "_Z5Test2v", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: } -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 478, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 24, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 473, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 496, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test3", -// CHECK-NEXT: "mangledName": "_Z5Test3ii", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (int, int)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 488, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 484, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 488, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 495, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 491, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 495, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 504, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 25, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 499, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 527, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test4", -// CHECK-NEXT: "mangledName": "_Z5Test4ii", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (int, int)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 514, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 510, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 514, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 521, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 517, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 525, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 525, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 525, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 545, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 26, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 530, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 9 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 555, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test5", -// CHECK-NEXT: "mangledName": "_Z5Test5v", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "constexpr": true -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 570, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 27, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 558, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 580, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test6", -// CHECK-NEXT: "mangledName": "_ZL5Test6v", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "storageClass": "static" -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 595, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 28, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 583, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 605, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test7", -// CHECK-NEXT: "mangledName": "_Z5Test7v", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "storageClass": "extern" -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 620, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 29, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 608, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 630, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test8", -// CHECK-NEXT: "mangledName": "_Z5Test8v", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 638, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 30, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 633, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 650, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test9", -// CHECK-NEXT: "mangledName": "_Z5Test9v", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void () noexcept" -// CHECK-NEXT: } -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 665, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 31, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 660, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 692, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test10", -// CHECK-NEXT: "mangledName": "_Z6Test10v", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void () noexcept(false)" -// CHECK-NEXT: } -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 700, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 32, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 695, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 723, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test11", -// CHECK-NEXT: "mangledName": "_Z6Test11v", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void () noexcept(1)" -// CHECK-NEXT: } -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionTemplateDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 751, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 35, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 727, -// CHECK-NEXT: "line": 34, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 760, -// CHECK-NEXT: "line": 35, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test12", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TemplateTypeParmDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 746, -// CHECK-NEXT: "line": 34, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 737, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 746, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "T", -// CHECK-NEXT: "tagUsed": "typename", -// CHECK-NEXT: "depth": 0, -// CHECK-NEXT: "index": 0 -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 751, -// CHECK-NEXT: "line": 35, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 749, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 760, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test12", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "T (T &)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 760, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 758, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 759, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "T &" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 769, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 37, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 764, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 782, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test13", -// CHECK-NEXT: "mangledName": "_Z6Test13i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (int)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 779, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 776, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 776, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 781, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 782, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 789, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 38, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 784, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 807, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Test14", -// CHECK-NEXT: "mangledName": "_Z6Test14iz", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (int, ...)" -// CHECK-NEXT: }, -// CHECK-NEXT: "variadic": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 799, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 796, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 796, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 806, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 807, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "ClassTemplateDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 905, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 45, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 11 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 872, -// CHECK-NEXT: "line": 44, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 937, -// CHECK-NEXT: "line": 47, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestFriends", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TemplateTypeParmDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 894, -// CHECK-NEXT: "line": 44, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 882, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 894, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "Ts", -// CHECK-NEXT: "tagUsed": "typename", -// CHECK-NEXT: "depth": 0, -// CHECK-NEXT: "index": 0, -// CHECK-NEXT: "isParameterPack": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 905, -// CHECK-NEXT: "line": 45, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 11 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 898, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 937, -// CHECK-NEXT: "line": 47, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestFriends", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 905, -// CHECK-NEXT: "line": 45, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 11 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 898, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 905, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 11 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "TestFriends", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FriendDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 930, -// CHECK-NEXT: "line": 46, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 923, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 932, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Ts" -// CHECK-NEXT: }, -// CHECK-NEXT: "isPackExpansion": true -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -ast-dump=json -ast-dump-filter Test %s | FileCheck %s + +struct S { + void Test1(); + void Test2() const; + void Test3() volatile; + void Test4() &; + void Test5() &&; + virtual void Test6(float, int = 12); + virtual void Test7() = 0; +}; + +struct T : S { // T is not referenced, but S is + void Test6(float, int = 100) override; +}; + +struct U { + void Test1(); +}; +void U::Test1() {} // parent + +void Test1(); +void Test2(void); +void Test3(int a, int b); +void Test4(int a, int b = 12); +constexpr void Test5(void); +static void Test6(void); +extern void Test7(void); +inline void Test8(void); +void Test9(void) noexcept; +void Test10(void) noexcept(false); +void Test11(void) noexcept(1); + +template +T Test12(T&); + +void Test13(int) {} +void Test14(int, ...) {} + +int main() { + Test1(); // Causes this to be marked 'used' +} + +template +struct TestFriends { + friend Ts...; +}; + +// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 127, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 4, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 122, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 133, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test1", +// CHECK-NEXT: "mangledName": "_ZN1S5Test1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: } +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 144, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 5, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 139, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 152, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test2", +// CHECK-NEXT: "mangledName": "_ZNK1S5Test2Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void () const" +// CHECK-NEXT: } +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 167, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 6, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 162, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 175, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test3", +// CHECK-NEXT: "mangledName": "_ZNV1S5Test3Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void () volatile" +// CHECK-NEXT: } +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 193, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 7, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 188, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 201, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test4", +// CHECK-NEXT: "mangledName": "_ZNR1S5Test4Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void () &" +// CHECK-NEXT: } +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 212, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 8, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 207, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 220, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test5", +// CHECK-NEXT: "mangledName": "_ZNO1S5Test5Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void () &&" +// CHECK-NEXT: } +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 240, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 9, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 227, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 7 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 261, +// CHECK-NEXT: "col": 37, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test6", +// CHECK-NEXT: "mangledName": "_ZN1S5Test6Efi", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (float, int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "virtual": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 251, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 246, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 246, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "fpp" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 257, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 253, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 259, +// CHECK-NEXT: "col": 35, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 259, +// CHECK-NEXT: "col": 35, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 259, +// CHECK-NEXT: "col": 35, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 280, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 10, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 267, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 7 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 290, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test7", +// CHECK-NEXT: "mangledName": "_ZN1S5Test7Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "virtual": true, +// CHECK-NEXT: "pure": true +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 356, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 14, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 351, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 380, +// CHECK-NEXT: "col": 32, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test6", +// CHECK-NEXT: "mangledName": "_ZN1T5Test6Efi", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (float, int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 367, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 362, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 362, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "fpp" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 373, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 369, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 375, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 375, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 375, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "100" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OverrideAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 380, +// CHECK-NEXT: "col": 32, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 380, +// CHECK-NEXT: "col": 32, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 416, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 18, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 411, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 422, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test1", +// CHECK-NEXT: "mangledName": "_ZN1U5Test1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: } +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 438, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 20, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 430, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 447, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "parentDeclContextId": "0x{{.*}}", +// CHECK-NEXT: "previousDecl": "0x{{.*}}", +// CHECK-NEXT: "name": "Test1", +// CHECK-NEXT: "mangledName": "_ZN1U5Test1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 446, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 447, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 467, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 22, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 462, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 473, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "Test1", +// CHECK-NEXT: "mangledName": "_Z5Test1v", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: } +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 482, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 23, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 477, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 492, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test2", +// CHECK-NEXT: "mangledName": "_Z5Test2v", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: } +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 501, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 24, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 496, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 519, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test3", +// CHECK-NEXT: "mangledName": "_Z5Test3ii", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int, int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 511, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 507, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 511, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 518, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 514, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 518, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 528, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 25, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 523, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 551, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test4", +// CHECK-NEXT: "mangledName": "_Z5Test4ii", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int, int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 538, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 534, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 538, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 545, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 541, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 549, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 549, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 549, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 570, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 26, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 555, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 9 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 580, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test5", +// CHECK-NEXT: "mangledName": "_Z5Test5v", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "constexpr": true +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 596, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 27, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 584, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 606, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test6", +// CHECK-NEXT: "mangledName": "_ZL5Test6v", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "storageClass": "static" +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 622, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 28, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 610, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 632, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test7", +// CHECK-NEXT: "mangledName": "_Z5Test7v", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "storageClass": "extern" +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 648, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 29, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 636, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 658, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test8", +// CHECK-NEXT: "mangledName": "_Z5Test8v", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 667, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 30, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 662, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 679, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test9", +// CHECK-NEXT: "mangledName": "_Z5Test9v", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void () noexcept" +// CHECK-NEXT: } +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 695, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 31, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 690, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 722, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test10", +// CHECK-NEXT: "mangledName": "_Z6Test10v", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void () noexcept(false)" +// CHECK-NEXT: } +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 731, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 32, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 726, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 754, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test11", +// CHECK-NEXT: "mangledName": "_Z6Test11v", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void () noexcept(1)" +// CHECK-NEXT: } +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionTemplateDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 785, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 35, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 760, +// CHECK-NEXT: "line": 34, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 794, +// CHECK-NEXT: "line": 35, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test12", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 779, +// CHECK-NEXT: "line": 34, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 770, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 779, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "T", +// CHECK-NEXT: "tagUsed": "typename", +// CHECK-NEXT: "depth": 0, +// CHECK-NEXT: "index": 0 +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 785, +// CHECK-NEXT: "line": 35, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 783, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 794, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test12", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "T (T &)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 794, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 792, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 793, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "T &" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "T &" +// CHECK-NEXT: }, +// CHECK-NEXT: "isDependent": true, +// CHECK-NEXT: "isInstantiationDependent": true, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "T" +// CHECK-NEXT: }, +// CHECK-NEXT: "isDependent": true, +// CHECK-NEXT: "isInstantiationDependent": true, +// CHECK-NEXT: "depth": 0, +// CHECK-NEXT: "index": 0, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmDecl", +// CHECK-NEXT: "name": "T" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 805, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 37, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 800, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 818, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test13", +// CHECK-NEXT: "mangledName": "_Z6Test13i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 815, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 812, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 812, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 817, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 818, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 826, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 38, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 821, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 844, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Test14", +// CHECK-NEXT: "mangledName": "_Z6Test14iz", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int, ...)" +// CHECK-NEXT: }, +// CHECK-NEXT: "variadic": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 836, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 833, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 833, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 843, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 844, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "ClassTemplateDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 949, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 45, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 11 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 915, +// CHECK-NEXT: "line": 44, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 983, +// CHECK-NEXT: "line": 47, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestFriends", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 937, +// CHECK-NEXT: "line": 44, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 925, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 937, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "Ts", +// CHECK-NEXT: "tagUsed": "typename", +// CHECK-NEXT: "depth": 0, +// CHECK-NEXT: "index": 0, +// CHECK-NEXT: "isParameterPack": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 949, +// CHECK-NEXT: "line": 45, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 11 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 942, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 983, +// CHECK-NEXT: "line": 47, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestFriends", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 949, +// CHECK-NEXT: "line": 45, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 11 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 942, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 949, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 11 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "TestFriends", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FriendDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 975, +// CHECK-NEXT: "line": 46, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 968, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 977, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Ts" +// CHECK-NEXT: }, +// CHECK-NEXT: "isPackExpansion": true +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } diff --git a/clang/test/AST/ast-dump-funcs.cpp b/clang/test/AST/ast-dump-funcs.cpp index 61fb5d4eb654e..9d9856bbef35f 100644 --- a/clang/test/AST/ast-dump-funcs.cpp +++ b/clang/test/AST/ast-dump-funcs.cpp @@ -48,8 +48,8 @@ struct S { virtual void f(float, int = 12); // CHECK: CXXMethodDecl 0x{{[^ ]*}} col:16 f 'void (float, int)' virtual // CHECK-NEXT: ParmVarDecl 0x{{[^ ]*}} col:23 'float' - // CHECK-NEXT: ParmVarDecl 0x{{[^ ]*}} col:29 'int' cinit - // CHECK-NEXT: IntegerLiteral 0x{{[^ ]*}} 'int' 12 + // CHECK: ParmVarDecl 0x{{[^ ]*}} col:29 'int' cinit + // CHECK: IntegerLiteral 0x{{[^ ]*}} 'int' 12 virtual void g() = 0; // CHECK: CXXMethodDecl 0x{{[^ ]*}} col:16 g 'void ()' virtual pure @@ -66,9 +66,9 @@ struct T : S { // T is not referenced, but S is // CHECK: CXXMethodDecl 0x{{[^ ]*}} col:8 f 'void (float, int)' // CHECK-NEXT: Overrides: [ 0x{{[^ ]*}} S::f 'void (float, int)' ] // CHECK-NEXT: ParmVarDecl 0x{{[^ ]*}} col:15 'float' - // CHECK-NEXT: ParmVarDecl 0x{{[^ ]*}} col:21 'int' cinit - // CHECK-NEXT: IntegerLiteral 0x{{[^ ]*}} 'int' 100 - // CHECK-NEXT: OverrideAttr + // CHECK: ParmVarDecl 0x{{[^ ]*}} col:21 'int' cinit + // CHECK: IntegerLiteral 0x{{[^ ]*}} 'int' 100 + // CHECK: OverrideAttr // CHECK: CXXConstructorDecl 0x{{[^ ]*}} col:8 implicit T 'void (const T &)' inline default_delete noexcept-unevaluated // CHECK: CXXMethodDecl 0x{{[^ ]*}} col:8 implicit operator= 'T &(const T &)' inline default_delete noexcept-unevaluated @@ -91,12 +91,12 @@ void a2(void); void b(int a, int b); // CHECK: FunctionDecl 0x{{[^ ]*}} col:6 b 'void (int, int)' // CHECK-NEXT: ParmVarDecl 0x{{[^ ]*}} col:12 a 'int' -// CHECK-NEXT: ParmVarDecl 0x{{[^ ]*}} col:19 b 'int' +// CHECK: ParmVarDecl 0x{{[^ ]*}} col:19 b 'int' void c(int a, int b = 12); // CHECK: FunctionDecl 0x{{[^ ]*}} col:6 c 'void (int, int)' // CHECK-NEXT: ParmVarDecl 0x{{[^ ]*}} col:12 a 'int' -// CHECK-NEXT: ParmVarDecl 0x{{[^ ]*}} col:19 b 'int' cinit -// CHECK-NEXT: IntegerLiteral 0x{{[^ ]*}} 'int' 12 +// CHECK: ParmVarDecl 0x{{[^ ]*}} col:19 b 'int' cinit +// CHECK: IntegerLiteral 0x{{[^ ]*}} 'int' 12 constexpr void d(void); // CHECK: FunctionDecl 0x{{[^ ]*}} col:16 constexpr d 'void ()' static void e(void); @@ -124,12 +124,12 @@ T l(T&); void m(int) {} // CHECK: FunctionDecl 0x{{[^ ]*}} col:6 m 'void (int)' // CHECK-NEXT: ParmVarDecl 0x{{[^ ]*}} col:11 'int' -// CHECK-NEXT: CompoundStmt 0x{{[^ ]*}} +// CHECK: CompoundStmt 0x{{[^ ]*}} void n(int, ...) {} // CHECK: FunctionDecl 0x{{[^ ]*}} col:6 n 'void (int, ...)' // CHECK-NEXT: ParmVarDecl 0x{{[^ ]*}} col:11 'int' -// CHECK-NEXT: CompoundStmt 0x{{[^ ]*}} +// CHECK: CompoundStmt 0x{{[^ ]*}} int main() { // CHECK: FunctionDecl 0x{{[^ ]*}} line:[[@LINE-1]]:5 main 'int ()' diff --git a/clang/test/AST/ast-dump-functionprototype.cpp b/clang/test/AST/ast-dump-functionprototype.cpp index d831e5da2d320..a723ecfb3b1af 100644 --- a/clang/test/AST/ast-dump-functionprototype.cpp +++ b/clang/test/AST/ast-dump-functionprototype.cpp @@ -6,17 +6,17 @@ struct B {}; typedef void (type1)() noexcept(10 > 5); // CHECK: TypedefDecl {{.*}} type1 'void () noexcept(10 > 5)' -// CHECK-NEXT: `-ParenType {{.*}} -// CHECK-NEXT: `-FunctionProtoType {{.*}} 'void () noexcept(10 > 5)' exceptionspec_noexcept_true cdecl +// CHECK-NEXT: `-typeDetails: ParenType {{.*}} +// CHECK-NEXT: `-typeDetails: FunctionProtoType {{.*}} 'void () noexcept(10 > 5)' exceptionspec_noexcept_true cdecl // CHECK-NEXT: |-NoexceptExpr: ConstantExpr {{.*}} 'bool' // CHECK-NEXT: | `-value: Int 1 -// CHECK-NEXT: `-BuiltinType {{.*}} 'void' +// CHECK: `-functionDetails: cdeclReturnType {{.*}} 'void' typedef void (type2)() throw(A, B); // CHECK: TypedefDecl {{.*}} type2 'void () throw(A, B)' -// CHECK-NEXT: `-ParenType {{.*}} -// CHECK-NEXT: `-FunctionProtoType {{.*}} 'void () throw(A, B)' exceptionspec_dynamic cdecl +// CHECK-NEXT: `-typeDetails: ParenType {{.*}} +// CHECK-NEXT: `-typeDetails: FunctionProtoType {{.*}} 'void () throw(A, B)' exceptionspec_dynamic cdecl // CHECK-NEXT: |-Exceptions: 'A', 'B' -// CHECK-NEXT: `-BuiltinType {{.*}} 'void' +// CHECK: `-functionDetails: cdeclReturnType {{.*}} 'void' diff --git a/clang/test/AST/ast-dump-if-json.cpp b/clang/test/AST/ast-dump-if-json.cpp index fe8fc88cdb751..eb62317350fe1 100644 --- a/clang/test/AST/ast-dump-if-json.cpp +++ b/clang/test/AST/ast-dump-if-json.cpp @@ -1,1202 +1,1266 @@ -// RUN: %clang_cc1 -triple x86_64-pc-linux -std=c++23 -ast-dump=json %s | FileCheck %s - -void func(int val) { - if (val) - ; - - if (val) - ; - else - ; - - if (val) - ; - else if (val) - ; - else - ; - - if constexpr(10 == 10) - ; - - if (int i = 12) - ; - - if (int i = 12; i) - ; - - if consteval {} - - if consteval {} else {} - - if not consteval {} - - if not consteval {} else {} -} - -// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py -// using --filters=IfStmt - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "IfStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 4, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 5, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 4, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralToBoolean", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "val", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 5, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "IfStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 7, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 10, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "hasElse": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 7, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralToBoolean", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "val", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 8, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 10, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "IfStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 12, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 17, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "hasElse": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 12, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralToBoolean", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "val", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 13, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IfStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 14, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 17, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "hasElse": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 14, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralToBoolean", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "val", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 15, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 17, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "IfStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 19, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 20, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ConstantExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 19, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "true", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "==", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "10" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "10" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 20, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "IfStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 22, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 23, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "hasVar": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 22, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralToBoolean", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 23, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "IfStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 25, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 26, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "hasInit": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 25, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralToBoolean", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 26, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "IfStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 28, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isConsteval": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "IfStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 30, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "hasElse": true, -// CHECK-NEXT: "isConsteval": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "IfStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 32, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isConsteval": true, -// CHECK-NEXT: "constevalIsNegated": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "IfStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 34, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "hasElse": true, -// CHECK-NEXT: "isConsteval": true, -// CHECK-NEXT: "constevalIsNegated": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 28, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } +// RUN: %clang_cc1 -triple x86_64-pc-linux -std=c++23 -ast-dump=json %s | FileCheck %s + +void func(int val) { + if (val) + ; + + if (val) + ; + else + ; + + if (val) + ; + else if (val) + ; + else + ; + + if constexpr(10 == 10) + ; + + if (int i = 12) + ; + + if (int i = 12; i) + ; + + if consteval {} + + if consteval {} else {} + + if not consteval {} + + if not consteval {} else {} +} + +// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py +// using --filters=IfStmt + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "IfStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 114, +// CHECK-NEXT: "line": 4, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 128, +// CHECK-NEXT: "line": 5, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 118, +// CHECK-NEXT: "line": 4, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 118, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralToBoolean", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 118, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 118, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 118, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 118, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "val", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 128, +// CHECK-NEXT: "line": 5, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 128, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "IfStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 135, +// CHECK-NEXT: "line": 7, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 164, +// CHECK-NEXT: "line": 10, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "hasElse": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 139, +// CHECK-NEXT: "line": 7, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 139, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralToBoolean", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 139, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 139, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 139, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 139, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "val", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 149, +// CHECK-NEXT: "line": 8, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 149, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 164, +// CHECK-NEXT: "line": 10, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 164, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "IfStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 171, +// CHECK-NEXT: "line": 12, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 224, +// CHECK-NEXT: "line": 17, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "hasElse": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 175, +// CHECK-NEXT: "line": 12, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 175, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralToBoolean", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 175, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 175, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 175, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 175, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "val", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 185, +// CHECK-NEXT: "line": 13, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 185, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IfStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 195, +// CHECK-NEXT: "line": 14, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 224, +// CHECK-NEXT: "line": 17, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "hasElse": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 199, +// CHECK-NEXT: "line": 14, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 199, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralToBoolean", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 199, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 199, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 199, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 199, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "val", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 209, +// CHECK-NEXT: "line": 15, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 209, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 224, +// CHECK-NEXT: "line": 17, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 224, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "IfStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 231, +// CHECK-NEXT: "line": 19, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 259, +// CHECK-NEXT: "line": 20, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ConstantExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 244, +// CHECK-NEXT: "line": 19, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 250, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "true", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 244, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 250, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "==", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 244, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 244, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "10" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 250, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 250, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "10" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 259, +// CHECK-NEXT: "line": 20, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 259, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "IfStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 266, +// CHECK-NEXT: "line": 22, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 287, +// CHECK-NEXT: "line": 23, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "hasVar": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 270, +// CHECK-NEXT: "line": 22, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 278, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 274, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 270, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 278, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 278, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 278, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 274, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 274, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralToBoolean", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 274, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 274, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 274, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 274, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 287, +// CHECK-NEXT: "line": 23, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 287, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "IfStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 294, +// CHECK-NEXT: "line": 25, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 318, +// CHECK-NEXT: "line": 26, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "hasInit": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 298, +// CHECK-NEXT: "line": 25, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 308, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 302, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 298, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 306, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 306, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 306, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 310, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 310, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralToBoolean", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 310, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 310, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 310, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 310, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 318, +// CHECK-NEXT: "line": 26, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 318, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "IfStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 325, +// CHECK-NEXT: "line": 28, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 339, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isConsteval": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 338, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 339, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "IfStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 346, +// CHECK-NEXT: "line": 30, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 368, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "hasElse": true, +// CHECK-NEXT: "isConsteval": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 359, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 360, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 367, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 368, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "IfStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 375, +// CHECK-NEXT: "line": 32, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 393, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isConsteval": true, +// CHECK-NEXT: "constevalIsNegated": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 392, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 393, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "IfStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 400, +// CHECK-NEXT: "line": 34, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 426, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "hasElse": true, +// CHECK-NEXT: "isConsteval": true, +// CHECK-NEXT: "constevalIsNegated": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 417, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 418, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 425, +// CHECK-NEXT: "col": 28, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 426, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } diff --git a/clang/test/AST/ast-dump-invalid.cpp b/clang/test/AST/ast-dump-invalid.cpp index 5b6d74194b989..ce931ca21c3d3 100644 --- a/clang/test/AST/ast-dump-invalid.cpp +++ b/clang/test/AST/ast-dump-invalid.cpp @@ -12,8 +12,8 @@ void f(T i, T j) { // CHECK-NEXT: |-TemplateTypeParmDecl // CHECK-NEXT: `-FunctionDecl // CHECK-NEXT: |-ParmVarDecl -// CHECK-NEXT: |-ParmVarDecl -// CHECK-NEXT: `-CompoundStmt +// CHECK: |-ParmVarDecl +// CHECK: `-CompoundStmt // CHECK-NEXT: `-ReturnStmt // CHECK-NEXT: `-CXXUnresolvedConstructExpr {{.*}} 'T' // CHECK-NEXT: |-DeclRefExpr {{.*}} 'T' lvalue ParmVar {{.*}} 'i' 'T' @@ -31,7 +31,7 @@ int g(int i) { // CHECK: NamespaceDecl {{.*}} <{{.*}}> {{.*}} TestInvalidIf // CHECK-NEXT: `-FunctionDecl // CHECK-NEXT: |-ParmVarDecl -// CHECK-NEXT: `-CompoundStmt +// CHECK: `-CompoundStmt // CHECK-NEXT: `-IfStmt {{.*}} // CHECK-NEXT: |-RecoveryExpr {{.*}} 'bool' // CHECK-NEXT: |-ReturnStmt {{.*}} @@ -52,11 +52,11 @@ double Str::foo1(double, invalid_type) // CHECK: | |-CXXRecordDecl {{.*}} col:8 implicit struct Str // CHECK-NEXT: | `-CXXMethodDecl {{.*}} col:11 invalid foo1 'double (double, int)' // CHECK-NEXT: | |-ParmVarDecl {{.*}} col:22 'double' -// CHECK-NEXT: | `-ParmVarDecl {{.*}} > col:36 invalid 'int' -// CHECK-NEXT: `-CXXMethodDecl {{.*}} parent {{.*}} line:47:13 invalid foo1 'double (double, int)' +// CHECK: | `-ParmVarDecl {{.*}} > col:36 invalid 'int' +// CHECK: `-CXXMethodDecl {{.*}} parent {{.*}} line:47:13 invalid foo1 'double (double, int)' // CHECK-NEXT: |-ParmVarDecl {{.*}} col:24 'double' -// CHECK-NEXT: |-ParmVarDecl {{.*}} > col:38 invalid 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} +// CHECK: |-ParmVarDecl {{.*}} > col:38 invalid 'int' +// CHECK: `-CompoundStmt {{.*}} // CHECK-NEXT: `-ReturnStmt {{.*}} // CHECK-NEXT: `-ImplicitCastExpr {{.*}} 'double' // CHECK-NEXT: `-IntegerLiteral {{.*}} 'int' 45 diff --git a/clang/test/AST/ast-dump-lambda-body-not-duplicated.cpp b/clang/test/AST/ast-dump-lambda-body-not-duplicated.cpp index 558455e239c74..9bc0cc0ea80c9 100644 --- a/clang/test/AST/ast-dump-lambda-body-not-duplicated.cpp +++ b/clang/test/AST/ast-dump-lambda-body-not-duplicated.cpp @@ -33,7 +33,7 @@ void Test1() { // // CHECK: CXXMethodDecl {{.*}} operator() 'auto (auto) const' inline // CHECK-NEXT: ParmVarDecl {{.*}} referenced x 'auto' -// CHECK-NEXT: CompoundStmt 0x[[TMP1:.*]] +// CHECK: CompoundStmt 0x[[TMP1:.*]] // CHECK: DeclRefExpr {{.*}} 'x' 'auto' // // CHECK: CompoundStmt 0x[[TMP1]] diff --git a/clang/test/AST/ast-dump-lambda.cpp b/clang/test/AST/ast-dump-lambda.cpp index a4d3fe4fbda57..1c5ee45cbd84f 100644 --- a/clang/test/AST/ast-dump-lambda.cpp +++ b/clang/test/AST/ast-dump-lambda.cpp @@ -35,277 +35,279 @@ template void test(Ts... a) { []() -> int { return 0; }; [] [[noreturn]] () {}; } + + // CHECK:Dumping test: -// CHECK-NEXT:FunctionTemplateDecl {{.*}} <{{.*}}ast-dump-lambda.cpp:15:1, line:37:1> line:15:32{{( imported)?}} test -// CHECK-NEXT:|-TemplateTypeParmDecl {{.*}} col:23{{( imported)?}} referenced typename depth 0 index 0 ... Ts -// CHECK-NEXT:`-FunctionDecl {{.*}} line:15:32{{( imported)?}} test 'void (Ts...)' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:43{{( imported)?}} referenced a 'Ts...' pack -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: |-DeclStmt {{.*}} -// CHECK-NEXT: | `-CXXRecordDecl {{.*}} line:16:10{{( imported)?}}{{( )?}} struct V definition -// CHECK-NEXT: | |-DefinitionData empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init -// CHECK-NEXT: | | |-DefaultConstructor exists trivial constexpr needs_implicit defaulted_is_constexpr -// CHECK-NEXT: | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | |-MoveConstructor exists simple trivial needs_implicit -// CHECK-NEXT: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | |-MoveAssignment exists simple trivial needs_implicit -// CHECK-NEXT: | | `-Destructor simple irrelevant trivial needs_implicit -// CHECK-NEXT: | |-CXXRecordDecl {{.*}} col:10{{( imported)?}} implicit struct V -// CHECK-NEXT: | `-CXXMethodDecl {{.*}} line:17:10{{( imported)?}} f 'void ()' implicit-inline -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:18:7)' -// CHECK-NEXT: | | |-CXXRecordDecl {{.*}} col:7{{( imported)?}} implicit{{( )?}} class definition -// CHECK-NEXT: | | | |-DefinitionData lambda standard_layout trivially_copyable can_const_default_init -// CHECK-NEXT: | | | | |-DefaultConstructor -// CHECK-NEXT: | | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | | |-MoveConstructor exists simple trivial needs_implicit -// CHECK-NEXT: | | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | | |-MoveAssignment -// CHECK-NEXT: | | | | `-Destructor simple irrelevant trivial needs_implicit -// CHECK-NEXT: | | | |-CXXMethodDecl {{.*}} col:7{{( imported)?}} operator() 'auto () const -> auto' inline -// CHECK-NEXT: | | | | `-CompoundStmt {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:8{{( imported)?}} implicit 'V *' -// CHECK-NEXT: | | |-ParenListExpr {{.*}} 'NULL TYPE' -// CHECK-NEXT: | | | `-CXXThisExpr {{.*}} 'V *' this -// CHECK-NEXT: | | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:19:7)' -// CHECK-NEXT: | |-CXXRecordDecl {{.*}} col:7{{( imported)?}} implicit{{( )?}} class definition -// CHECK-NEXT: | | |-DefinitionData lambda standard_layout trivially_copyable can_const_default_init -// CHECK-NEXT: | | | |-DefaultConstructor defaulted_is_constexpr -// CHECK-NEXT: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveConstructor exists simple trivial needs_implicit -// CHECK-NEXT: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveAssignment -// CHECK-NEXT: | | | `-Destructor simple irrelevant trivial needs_implicit -// CHECK-NEXT: | | |-CXXMethodDecl {{.*}} col:7{{( imported)?}} operator() 'auto () const -> auto' inline -// CHECK-NEXT: | | | `-CompoundStmt {{.*}} -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:8{{( imported)?}} implicit 'V' -// CHECK-NEXT: | |-ParenListExpr {{.*}} 'NULL TYPE' -// CHECK-NEXT: | | `-UnaryOperator {{.*}} 'V' lvalue prefix '*' cannot overflow -// CHECK-NEXT: | | `-CXXThisExpr {{.*}} 'V *' this -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: |-DeclStmt {{.*}} -// CHECK-NEXT: | |-VarDecl {{.*}} col:7{{( imported)?}} referenced b 'int' -// CHECK-NEXT: | `-VarDecl {{.*}} col:10{{( imported)?}} referenced c 'int' -// CHECK-NEXT: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:23:3)' -// CHECK-NEXT: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition -// CHECK-NEXT: | | |-DefinitionData lambda empty standard_layout trivially_copyable literal can_const_default_init -// CHECK-NEXT: | | | |-DefaultConstructor defaulted_is_constexpr -// CHECK-NEXT: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveConstructor exists simple trivial needs_implicit -// CHECK-NEXT: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveAssignment -// CHECK-NEXT: | | | `-Destructor simple irrelevant trivial needs_implicit -// CHECK-NEXT: | | |-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto () const' inline -// CHECK-NEXT: | | | `-CompoundStmt {{.*}} -// CHECK-NEXT: | | |-CXXConversionDecl {{.*}} col:3{{( imported)?}} implicit constexpr operator auto (*)() 'auto (*() const noexcept)()' inline -// CHECK-NEXT: | | `-CXXMethodDecl {{.*}} col:3{{( imported)?}} implicit __invoke 'auto ()' static inline -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:24:3)' -// CHECK-NEXT: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition -// CHECK-NEXT: | | |-DefinitionData lambda empty standard_layout trivially_copyable literal can_const_default_init -// CHECK-NEXT: | | | |-DefaultConstructor defaulted_is_constexpr -// CHECK-NEXT: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveConstructor exists simple trivial needs_implicit -// CHECK-NEXT: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveAssignment -// CHECK-NEXT: | | | `-Destructor simple irrelevant trivial needs_implicit -// CHECK-NEXT: | | |-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto (int, ...) const' inline -// CHECK-NEXT: | | | |-ParmVarDecl {{.*}} col:10{{( imported)?}} a 'int' -// CHECK-NEXT: | | | `-CompoundStmt {{.*}} -// CHECK-NEXT: | | |-CXXConversionDecl {{.*}} col:3{{( imported)?}} implicit constexpr operator auto (*)(int, ...) 'auto (*() const noexcept)(int, ...)' inline -// CHECK-NEXT: | | `-CXXMethodDecl {{.*}} col:3{{( imported)?}} implicit __invoke 'auto (int, ...)' static inline -// CHECK-NEXT: | | `-ParmVarDecl {{.*}} col:10{{( imported)?}} a 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:25:3)' -// CHECK-NEXT: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition -// CHECK-NEXT: | | |-DefinitionData lambda standard_layout trivially_copyable can_const_default_init -// CHECK-NEXT: | | | |-DefaultConstructor -// CHECK-NEXT: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveConstructor exists simple trivial needs_implicit -// CHECK-NEXT: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveAssignment -// CHECK-NEXT: | | | `-Destructor simple irrelevant trivial needs_implicit -// CHECK-NEXT: | | |-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto () const -> auto' inline -// CHECK-NEXT: | | | `-CompoundStmt {{.*}} -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:4{{( imported)?}} implicit 'Ts...' -// CHECK-NEXT: | |-ParenListExpr {{.*}} 'NULL TYPE' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'Ts' lvalue ParmVar {{.*}} 'a' 'Ts...' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:26:3)' -// CHECK-NEXT: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition -// CHECK-NEXT: | | |-DefinitionData lambda empty standard_layout trivially_copyable literal can_const_default_init -// CHECK-NEXT: | | | |-DefaultConstructor defaulted_is_constexpr -// CHECK-NEXT: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveConstructor exists simple trivial needs_implicit -// CHECK-NEXT: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveAssignment -// CHECK-NEXT: | | | `-Destructor simple irrelevant trivial needs_implicit -// CHECK-NEXT: | | `-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto () const -> auto' inline -// CHECK-NEXT: | | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:27:3)' -// CHECK-NEXT: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition -// CHECK-NEXT: | | |-DefinitionData lambda empty standard_layout trivially_copyable literal can_const_default_init -// CHECK-NEXT: | | | |-DefaultConstructor defaulted_is_constexpr -// CHECK-NEXT: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveConstructor exists simple trivial needs_implicit -// CHECK-NEXT: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveAssignment -// CHECK-NEXT: | | | `-Destructor simple irrelevant trivial needs_implicit -// CHECK-NEXT: | | `-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto () const -> auto' inline -// CHECK-NEXT: | | `-CompoundStmt {{.*}} -// CHECK-NEXT: | | `-ReturnStmt {{.*}} -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'const int' lvalue Var {{.*}} 'b' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-ReturnStmt {{.*}} -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'const int' lvalue Var {{.*}} 'b' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:28:3)' -// CHECK-NEXT: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition -// CHECK-NEXT: | | |-DefinitionData lambda empty standard_layout trivially_copyable literal can_const_default_init -// CHECK-NEXT: | | | |-DefaultConstructor defaulted_is_constexpr -// CHECK-NEXT: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveConstructor exists simple trivial needs_implicit -// CHECK-NEXT: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveAssignment -// CHECK-NEXT: | | | `-Destructor simple irrelevant trivial needs_implicit -// CHECK-NEXT: | | `-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto () const -> auto' inline -// CHECK-NEXT: | | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:29:3)' -// CHECK-NEXT: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition -// CHECK-NEXT: | | |-DefinitionData lambda empty standard_layout trivially_copyable literal can_const_default_init -// CHECK-NEXT: | | | |-DefaultConstructor defaulted_is_constexpr -// CHECK-NEXT: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveConstructor exists simple trivial needs_implicit -// CHECK-NEXT: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveAssignment -// CHECK-NEXT: | | | `-Destructor simple irrelevant trivial needs_implicit -// CHECK-NEXT: | | `-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto () const -> auto' inline -// CHECK-NEXT: | | `-CompoundStmt {{.*}} -// CHECK-NEXT: | | `-ReturnStmt {{.*}} -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'c' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-ReturnStmt {{.*}} -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'c' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:30:3)' -// CHECK-NEXT: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition -// CHECK-NEXT: | | |-DefinitionData lambda trivially_copyable literal can_const_default_init -// CHECK-NEXT: | | | |-DefaultConstructor -// CHECK-NEXT: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveConstructor exists simple trivial needs_implicit -// CHECK-NEXT: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveAssignment -// CHECK-NEXT: | | | `-Destructor simple irrelevant trivial needs_implicit -// CHECK-NEXT: | | |-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto () const -> auto' inline -// CHECK-NEXT: | | | `-CompoundStmt {{.*}} -// CHECK-NEXT: | | | `-ReturnStmt {{.*}} -// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '+' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'const int' lvalue Var {{.*}} 'b' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'c' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:4{{( imported)?}} implicit 'int' -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:8{{( imported)?}} implicit 'int &' -// CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'b' 'int' -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'c' 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-ReturnStmt {{.*}} -// CHECK-NEXT: | `-BinaryOperator {{.*}} 'int' '+' -// CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'const int' lvalue Var {{.*}} 'b' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'c' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:31:3)' -// CHECK-NEXT: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition -// CHECK-NEXT: | | |-DefinitionData lambda standard_layout trivially_copyable can_const_default_init -// CHECK-NEXT: | | | |-DefaultConstructor -// CHECK-NEXT: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveConstructor exists simple trivial needs_implicit -// CHECK-NEXT: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveAssignment -// CHECK-NEXT: | | | `-Destructor simple irrelevant trivial needs_implicit -// CHECK-NEXT: | | |-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto () const -> auto' inline -// CHECK-NEXT: | | | `-CompoundStmt {{.*}} -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:4{{( imported)?}} implicit 'Ts...' -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:10{{( imported)?}} implicit 'int' -// CHECK-NEXT: | |-ParenListExpr {{.*}} 'NULL TYPE' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'Ts' lvalue ParmVar {{.*}} 'a' 'Ts...' -// CHECK-NEXT: | |-IntegerLiteral {{.*}} 'int' 12 -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:32:3)' -// CHECK-NEXT: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition -// CHECK-NEXT: | | |-DefinitionData lambda empty standard_layout trivially_copyable literal can_const_default_init -// CHECK-NEXT: | | | |-DefaultConstructor defaulted_is_constexpr -// CHECK-NEXT: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveConstructor exists simple trivial needs_implicit -// CHECK-NEXT: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveAssignment -// CHECK-NEXT: | | | `-Destructor simple irrelevant trivial needs_implicit -// CHECK-NEXT: | | |-CXXMethodDecl {{.*}} col:3{{( imported)?}} constexpr operator() 'auto () const' inline -// CHECK-NEXT: | | | `-CompoundStmt {{.*}} -// CHECK-NEXT: | | |-CXXConversionDecl {{.*}} col:3{{( imported)?}} implicit constexpr operator auto (*)() 'auto (*() const noexcept)()' inline -// CHECK-NEXT: | | `-CXXMethodDecl {{.*}} col:3{{( imported)?}} implicit constexpr __invoke 'auto ()' static inline -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:33:3)' -// CHECK-NEXT: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition -// CHECK-NEXT: | | |-DefinitionData lambda empty standard_layout trivially_copyable literal can_const_default_init -// CHECK-NEXT: | | | |-DefaultConstructor defaulted_is_constexpr -// CHECK-NEXT: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveConstructor exists simple trivial needs_implicit -// CHECK-NEXT: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveAssignment -// CHECK-NEXT: | | | `-Destructor simple irrelevant trivial needs_implicit -// CHECK-NEXT: | | |-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto ()' inline -// CHECK-NEXT: | | | `-CompoundStmt {{.*}} -// CHECK-NEXT: | | |-CXXConversionDecl {{.*}} col:3{{( imported)?}} implicit constexpr operator auto (*)() 'auto (*() const noexcept)()' inline -// CHECK-NEXT: | | `-CXXMethodDecl {{.*}} col:3{{( imported)?}} implicit __invoke 'auto ()' static inline -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:34:3)' -// CHECK-NEXT: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition -// CHECK-NEXT: | | |-DefinitionData lambda empty standard_layout trivially_copyable literal can_const_default_init -// CHECK-NEXT: | | | |-DefaultConstructor defaulted_is_constexpr -// CHECK-NEXT: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveConstructor exists simple trivial needs_implicit -// CHECK-NEXT: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveAssignment -// CHECK-NEXT: | | | `-Destructor simple irrelevant trivial needs_implicit -// CHECK-NEXT: | | |-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto () const noexcept' inline -// CHECK-NEXT: | | | `-CompoundStmt {{.*}} -// CHECK-NEXT: | | |-CXXConversionDecl {{.*}} col:3{{( imported)?}} implicit constexpr operator auto (*)() noexcept 'auto (*() const noexcept)() noexcept' inline -// CHECK-NEXT: | | `-CXXMethodDecl {{.*}} col:3{{( imported)?}} implicit __invoke 'auto () noexcept' static inline -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:35:3)' -// CHECK-NEXT: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition -// CHECK-NEXT: | | |-DefinitionData lambda empty standard_layout trivially_copyable literal can_const_default_init -// CHECK-NEXT: | | | |-DefaultConstructor defaulted_is_constexpr -// CHECK-NEXT: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveConstructor exists simple trivial needs_implicit -// CHECK-NEXT: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveAssignment -// CHECK-NEXT: | | | `-Destructor simple irrelevant trivial needs_implicit -// CHECK-NEXT: | | |-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto () const -> int' inline -// CHECK-NEXT: | | | `-CompoundStmt {{.*}} -// CHECK-NEXT: | | | `-ReturnStmt {{.*}} -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-CXXConversionDecl {{.*}} col:3{{( imported)?}} implicit constexpr operator int (*)() 'auto (*() const noexcept)() -> int' inline -// CHECK-NEXT: | | `-CXXMethodDecl {{.*}} col:3{{( imported)?}} implicit __invoke 'auto () -> int' static inline -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-ReturnStmt {{.*}} -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: `-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:36:3)' -// CHECK-NEXT: |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition -// CHECK-NEXT: | |-DefinitionData lambda empty standard_layout trivially_copyable literal can_const_default_init -// CHECK-NEXT: | | |-DefaultConstructor defaulted_is_constexpr -// CHECK-NEXT: | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | |-MoveConstructor exists simple trivial needs_implicit -// CHECK-NEXT: | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | |-MoveAssignment -// CHECK-NEXT: | | `-Destructor simple irrelevant trivial needs_implicit -// CHECK-NEXT: | |-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto () const' inline -// CHECK-NEXT: | | |-CompoundStmt {{.*}} -// CHECK-NEXT: | | `-CXX11NoReturnAttr {{.*}} noreturn -// CHECK-NEXT: | |-CXXConversionDecl {{.*}} col:3{{( imported)?}} implicit constexpr operator auto (*)() 'auto (*() const noexcept)()' inline -// CHECK-NEXT: | `-CXXMethodDecl {{.*}} col:3{{( imported)?}} implicit __invoke 'auto ()' static inline -// CHECK-NEXT: `-CompoundStmt {{.*}} +// CHECK:FunctionTemplateDecl {{.*}} <{{.*}}ast-dump-lambda.cpp:15:1, line:37:1> line:15:32{{( imported)?}} test +// CHECK:|-TemplateTypeParmDecl {{.*}} col:23{{( imported)?}} referenced typename depth 0 index 0 ... Ts +// CHECK:`-FunctionDecl {{.*}} line:15:32{{( imported)?}} test 'void (Ts...)' +// CHECK: |-ParmVarDecl {{.*}} col:43{{( imported)?}} referenced a 'Ts...' pack +// CHECK: `-CompoundStmt {{.*}} +// CHECK: |-DeclStmt {{.*}} +// CHECK: | `-CXXRecordDecl {{.*}} line:16:10{{( imported)?}}{{( )?}} struct V definition +// CHECK: | |-DefinitionData empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init +// CHECK: | | |-DefaultConstructor exists trivial constexpr needs_implicit defaulted_is_constexpr +// CHECK: | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK: | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | |-MoveAssignment exists simple trivial needs_implicit +// CHECK: | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK: | |-CXXRecordDecl {{.*}} col:10{{( imported)?}} implicit struct V +// CHECK: | `-CXXMethodDecl {{.*}} line:17:10{{( imported)?}} f 'void ()' implicit-inline +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:18:7)' +// CHECK: | | |-CXXRecordDecl {{.*}} col:7{{( imported)?}} implicit{{( )?}} class definition +// CHECK: | | | |-DefinitionData lambda standard_layout trivially_copyable can_const_default_init +// CHECK: | | | | |-DefaultConstructor +// CHECK: | | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK: | | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | | |-MoveAssignment +// CHECK: | | | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK: | | | |-CXXMethodDecl {{.*}} col:7{{( imported)?}} operator() 'auto () const -> auto' inline +// CHECK: | | | | `-CompoundStmt {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:8{{( imported)?}} implicit 'V *' +// CHECK: | | |-ParenListExpr {{.*}} 'NULL TYPE' +// CHECK: | | | `-CXXThisExpr {{.*}} 'V *' this +// CHECK: | | `-CompoundStmt {{.*}} +// CHECK: | `-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:19:7)' +// CHECK: | |-CXXRecordDecl {{.*}} col:7{{( imported)?}} implicit{{( )?}} class definition +// CHECK: | | |-DefinitionData lambda standard_layout trivially_copyable can_const_default_init +// CHECK: | | | |-DefaultConstructor defaulted_is_constexpr +// CHECK: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveAssignment +// CHECK: | | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK: | | |-CXXMethodDecl {{.*}} col:7{{( imported)?}} operator() 'auto () const -> auto' inline +// CHECK: | | | `-CompoundStmt {{.*}} +// CHECK: | | `-FieldDecl {{.*}} col:8{{( imported)?}} implicit 'V' +// CHECK: | |-ParenListExpr {{.*}} 'NULL TYPE' +// CHECK: | | `-UnaryOperator {{.*}} 'V' lvalue prefix '*' cannot overflow +// CHECK: | | `-CXXThisExpr {{.*}} 'V *' this +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: |-DeclStmt {{.*}} +// CHECK: | |-VarDecl {{.*}} col:7{{( imported)?}} referenced b 'int' +// CHECK: | `-VarDecl {{.*}} col:10{{( imported)?}} referenced c 'int' +// CHECK: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:23:3)' +// CHECK: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition +// CHECK: | | |-DefinitionData lambda empty standard_layout trivially_copyable literal can_const_default_init +// CHECK: | | | |-DefaultConstructor defaulted_is_constexpr +// CHECK: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveAssignment +// CHECK: | | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK: | | |-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto () const' inline +// CHECK: | | | `-CompoundStmt {{.*}} +// CHECK: | | |-CXXConversionDecl {{.*}} col:3{{( imported)?}} implicit constexpr operator auto (*)() 'auto (*() const noexcept)()' inline +// CHECK: | | `-CXXMethodDecl {{.*}} col:3{{( imported)?}} implicit __invoke 'auto ()' static inline +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:24:3)' +// CHECK: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition +// CHECK: | | |-DefinitionData lambda empty standard_layout trivially_copyable literal can_const_default_init +// CHECK: | | | |-DefaultConstructor defaulted_is_constexpr +// CHECK: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveAssignment +// CHECK: | | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK: | | |-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto (int, ...) const' inline +// CHECK: | | | |-ParmVarDecl {{.*}} col:10{{( imported)?}} a 'int' +// CHECK: | | | `-CompoundStmt {{.*}} +// CHECK: | | |-CXXConversionDecl {{.*}} col:3{{( imported)?}} implicit constexpr operator auto (*)(int, ...) 'auto (*() const noexcept)(int, ...)' inline +// CHECK: | | `-CXXMethodDecl {{.*}} col:3{{( imported)?}} implicit __invoke 'auto (int, ...)' static inline +// CHECK: | | `-ParmVarDecl {{.*}} col:10{{( imported)?}} a 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:25:3)' +// CHECK: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition +// CHECK: | | |-DefinitionData lambda standard_layout trivially_copyable can_const_default_init +// CHECK: | | | |-DefaultConstructor +// CHECK: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveAssignment +// CHECK: | | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK: | | |-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto () const -> auto' inline +// CHECK: | | | `-CompoundStmt {{.*}} +// CHECK: | | `-FieldDecl {{.*}} col:4{{( imported)?}} implicit 'Ts...' +// CHECK: | |-ParenListExpr {{.*}} 'NULL TYPE' +// CHECK: | | `-DeclRefExpr {{.*}} 'Ts' lvalue ParmVar {{.*}} 'a' 'Ts...' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:26:3)' +// CHECK: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition +// CHECK: | | |-DefinitionData lambda empty standard_layout trivially_copyable literal can_const_default_init +// CHECK: | | | |-DefaultConstructor defaulted_is_constexpr +// CHECK: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveAssignment +// CHECK: | | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK: | | `-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto () const -> auto' inline +// CHECK: | | `-CompoundStmt {{.*}} +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:27:3)' +// CHECK: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition +// CHECK: | | |-DefinitionData lambda empty standard_layout trivially_copyable literal can_const_default_init +// CHECK: | | | |-DefaultConstructor defaulted_is_constexpr +// CHECK: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveAssignment +// CHECK: | | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK: | | `-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto () const -> auto' inline +// CHECK: | | `-CompoundStmt {{.*}} +// CHECK: | | `-ReturnStmt {{.*}} +// CHECK: | | `-DeclRefExpr {{.*}} 'const int' lvalue Var {{.*}} 'b' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-ReturnStmt {{.*}} +// CHECK: | `-DeclRefExpr {{.*}} 'const int' lvalue Var {{.*}} 'b' 'int' refers_to_enclosing_variable_or_capture +// CHECK: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:28:3)' +// CHECK: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition +// CHECK: | | |-DefinitionData lambda empty standard_layout trivially_copyable literal can_const_default_init +// CHECK: | | | |-DefaultConstructor defaulted_is_constexpr +// CHECK: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveAssignment +// CHECK: | | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK: | | `-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto () const -> auto' inline +// CHECK: | | `-CompoundStmt {{.*}} +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:29:3)' +// CHECK: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition +// CHECK: | | |-DefinitionData lambda empty standard_layout trivially_copyable literal can_const_default_init +// CHECK: | | | |-DefaultConstructor defaulted_is_constexpr +// CHECK: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveAssignment +// CHECK: | | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK: | | `-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto () const -> auto' inline +// CHECK: | | `-CompoundStmt {{.*}} +// CHECK: | | `-ReturnStmt {{.*}} +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'c' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-ReturnStmt {{.*}} +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'c' 'int' refers_to_enclosing_variable_or_capture +// CHECK: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:30:3)' +// CHECK: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition +// CHECK: | | |-DefinitionData lambda trivially_copyable literal can_const_default_init +// CHECK: | | | |-DefaultConstructor +// CHECK: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveAssignment +// CHECK: | | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK: | | |-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto () const -> auto' inline +// CHECK: | | | `-CompoundStmt {{.*}} +// CHECK: | | | `-ReturnStmt {{.*}} +// CHECK: | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'const int' lvalue Var {{.*}} 'b' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'c' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-FieldDecl {{.*}} col:4{{( imported)?}} implicit 'int' +// CHECK: | | `-FieldDecl {{.*}} col:8{{( imported)?}} implicit 'int &' +// CHECK: | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'b' 'int' +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'c' 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-ReturnStmt {{.*}} +// CHECK: | `-BinaryOperator {{.*}} 'int' '+' +// CHECK: | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | `-DeclRefExpr {{.*}} 'const int' lvalue Var {{.*}} 'b' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'c' 'int' refers_to_enclosing_variable_or_capture +// CHECK: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:31:3)' +// CHECK: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition +// CHECK: | | |-DefinitionData lambda standard_layout trivially_copyable can_const_default_init +// CHECK: | | | |-DefaultConstructor +// CHECK: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveAssignment +// CHECK: | | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK: | | |-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto () const -> auto' inline +// CHECK: | | | `-CompoundStmt {{.*}} +// CHECK: | | |-FieldDecl {{.*}} col:4{{( imported)?}} implicit 'Ts...' +// CHECK: | | `-FieldDecl {{.*}} col:10{{( imported)?}} implicit 'int' +// CHECK: | |-ParenListExpr {{.*}} 'NULL TYPE' +// CHECK: | | `-DeclRefExpr {{.*}} 'Ts' lvalue ParmVar {{.*}} 'a' 'Ts...' +// CHECK: | |-IntegerLiteral {{.*}} 'int' 12 +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:32:3)' +// CHECK: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition +// CHECK: | | |-DefinitionData lambda empty standard_layout trivially_copyable literal can_const_default_init +// CHECK: | | | |-DefaultConstructor defaulted_is_constexpr +// CHECK: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveAssignment +// CHECK: | | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK: | | |-CXXMethodDecl {{.*}} col:3{{( imported)?}} constexpr operator() 'auto () const' inline +// CHECK: | | | `-CompoundStmt {{.*}} +// CHECK: | | |-CXXConversionDecl {{.*}} col:3{{( imported)?}} implicit constexpr operator auto (*)() 'auto (*() const noexcept)()' inline +// CHECK: | | `-CXXMethodDecl {{.*}} col:3{{( imported)?}} implicit constexpr __invoke 'auto ()' static inline +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:33:3)' +// CHECK: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition +// CHECK: | | |-DefinitionData lambda empty standard_layout trivially_copyable literal can_const_default_init +// CHECK: | | | |-DefaultConstructor defaulted_is_constexpr +// CHECK: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveAssignment +// CHECK: | | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK: | | |-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto ()' inline +// CHECK: | | | `-CompoundStmt {{.*}} +// CHECK: | | |-CXXConversionDecl {{.*}} col:3{{( imported)?}} implicit constexpr operator auto (*)() 'auto (*() const noexcept)()' inline +// CHECK: | | `-CXXMethodDecl {{.*}} col:3{{( imported)?}} implicit __invoke 'auto ()' static inline +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:34:3)' +// CHECK: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition +// CHECK: | | |-DefinitionData lambda empty standard_layout trivially_copyable literal can_const_default_init +// CHECK: | | | |-DefaultConstructor defaulted_is_constexpr +// CHECK: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveAssignment +// CHECK: | | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK: | | |-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto () const noexcept' inline +// CHECK: | | | `-CompoundStmt {{.*}} +// CHECK: | | |-CXXConversionDecl {{.*}} col:3{{( imported)?}} implicit constexpr operator auto (*)() noexcept 'auto (*() const noexcept)() noexcept' inline +// CHECK: | | `-CXXMethodDecl {{.*}} col:3{{( imported)?}} implicit __invoke 'auto () noexcept' static inline +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: |-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:35:3)' +// CHECK: | |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition +// CHECK: | | |-DefinitionData lambda empty standard_layout trivially_copyable literal can_const_default_init +// CHECK: | | | |-DefaultConstructor defaulted_is_constexpr +// CHECK: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK: | | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | | |-MoveAssignment +// CHECK: | | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK: | | |-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto () const -> int' inline +// CHECK: | | | `-CompoundStmt {{.*}} +// CHECK: | | | `-ReturnStmt {{.*}} +// CHECK: | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-CXXConversionDecl {{.*}} col:3{{( imported)?}} implicit constexpr operator int (*)() 'auto (*() const noexcept)() -> int' inline +// CHECK: | | `-CXXMethodDecl {{.*}} col:3{{( imported)?}} implicit __invoke 'auto () -> int' static inline +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-ReturnStmt {{.*}} +// CHECK: | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK: `-LambdaExpr {{.*}} '(lambda at {{.*}}ast-dump-lambda.cpp:36:3)' +// CHECK: |-CXXRecordDecl {{.*}} col:3{{( imported)?}} implicit{{( )?}} class definition +// CHECK: | |-DefinitionData lambda empty standard_layout trivially_copyable literal can_const_default_init +// CHECK: | | |-DefaultConstructor defaulted_is_constexpr +// CHECK: | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | |-MoveConstructor exists simple trivial needs_implicit +// CHECK: | | |-CopyAssignment trivial has_const_param needs_implicit implicit_has_const_param +// CHECK: | | |-MoveAssignment +// CHECK: | | `-Destructor simple irrelevant trivial needs_implicit +// CHECK: | |-CXXMethodDecl {{.*}} col:3{{( imported)?}} operator() 'auto () const' inline +// CHECK: | | |-CompoundStmt {{.*}} +// CHECK: | | `-attrDetails: CXX11NoReturnAttr {{.*}} noreturn +// CHECK: | |-CXXConversionDecl {{.*}} col:3{{( imported)?}} implicit constexpr operator auto (*)() 'auto (*() const noexcept)()' inline +// CHECK: | `-CXXMethodDecl {{.*}} col:3{{( imported)?}} implicit __invoke 'auto ()' static inline +// CHECK: `-CompoundStmt {{.*}} diff --git a/clang/test/AST/ast-dump-lookups.cpp b/clang/test/AST/ast-dump-lookups.cpp index 58f31ac4a3a6d..0aff4cd344608 100644 --- a/clang/test/AST/ast-dump-lookups.cpp +++ b/clang/test/AST/ast-dump-lookups.cpp @@ -14,10 +14,10 @@ namespace Test { // PRAGMA: lookup results for Test: // PRAGMA-NEXT: NamespaceDecl {{.*}} Test // PRAGMA-NEXT: |-TypedefDecl {{.*}} T 'int' -// PRAGMA-NEXT: | `-BuiltinType {{.*}} 'int' +// PRAGMA-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' // PRAGMA-NEXT: |-VarDecl [[EXTERN_A:0x[^ ]*]] {{.*}} a 'int' extern -// PRAGMA-NEXT: `-VarDecl {{.*}} prev [[EXTERN_A]] {{.*}} a 'int' cinit -// PRAGMA-NEXT: `-IntegerLiteral {{.*}} 'int' 0 +// PRAGMA: `-VarDecl {{.*}} prev [[EXTERN_A]] {{.*}} a 'int' cinit +// PRAGMA: |-IntegerLiteral {{.*}} 'int' 0 #endif namespace Test { } @@ -25,10 +25,10 @@ namespace Test { } // DECLS: Dumping Test: // DECLS-NEXT: NamespaceDecl {{.*}} Test // DECLS-NEXT: |-TypedefDecl {{.*}} T 'int' -// DECLS-NEXT: | `-BuiltinType {{.*}} 'int' +// DECLS-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' // DECLS-NEXT: |-VarDecl [[EXTERN_A:0x[^ ]*]] {{.*}} a 'int' extern -// DECLS-NEXT: `-VarDecl {{.*}} prev [[EXTERN_A]] {{.*}} a 'int' cinit -// DECLS-NEXT: `-IntegerLiteral {{.*}} 'int' 0 +// DECLS: `-VarDecl {{.*}} prev [[EXTERN_A]] {{.*}} a 'int' cinit +// DECLS: |-IntegerLiteral {{.*}} 'int' 0 // // DECLS: Dumping Test: // DECLS-NEXT: NamespaceDecl {{.*}} Test @@ -46,8 +46,8 @@ namespace Test { } // DECLS-LOOKUPS: -DeclarationName 'a' // DECLS-LOOKUPS-NEXT: `-Var [[A:[^ ]*]] 'a' 'int' // DECLS-LOOKUPS-NEXT: |-VarDecl [[EXTERN_A:0x[^ ]*]] {{.*}} a 'int' extern -// DECLS-LOOKUPS-NEXT: `-VarDecl [[A]] prev [[EXTERN_A]] {{.*}} a 'int' cinit -// DECLS-LOOKUPS-NEXT: `-IntegerLiteral {{.*}} 'int' 0 +// DECLS-LOOKUPS: `-VarDecl [[A]] prev [[EXTERN_A]] {{.*}} a 'int' cinit +// DECLS-LOOKUPS-NEXT: |-IntegerLiteral {{.*}} 'int' 0 // // DECLS-LOOKUPS: Dumping Test: // DECLS-LOOKUPS-NEXT: Lookup map is in primary DeclContext diff --git a/clang/test/AST/ast-dump-managed-var.cu b/clang/test/AST/ast-dump-managed-var.cu index 862a70c81f9e9..849311ba23996 100644 --- a/clang/test/AST/ast-dump-managed-var.cu +++ b/clang/test/AST/ast-dump-managed-var.cu @@ -4,25 +4,25 @@ #include "Inputs/cuda.h" // CHECK-LABEL: VarDecl {{.*}} m1 'int' -// CHECK-NEXT: HIPManagedAttr +// CHECK: HIPManagedAttr // CHECK-NEXT: CUDADeviceAttr {{.*}}Implicit __managed__ int m1; // CHECK-LABEL: VarDecl {{.*}} m2 'int' -// CHECK-NEXT: HIPManagedAttr +// CHECK: HIPManagedAttr // CHECK-NEXT: CUDADeviceAttr {{.*}}Implicit // CHECK-NOT: HIPManagedAttr // CHECK-NOT: CUDADeviceAttr __managed__ __managed__ int m2; // CHECK-LABEL: VarDecl {{.*}} m3 'int' -// CHECK-NEXT: HIPManagedAttr +// CHECK: HIPManagedAttr // CHECK-NEXT: CUDADeviceAttr {{.*}}line // CHECK-NOT: CUDADeviceAttr {{.*}}Implicit __managed__ __device__ int m3; // CHECK-LABEL: VarDecl {{.*}} m3a 'int' -// CHECK-NEXT: CUDADeviceAttr {{.*}}cuda.h +// CHECK: CUDADeviceAttr {{.*}}cuda.h // CHECK-NEXT: HIPManagedAttr // CHECK-NOT: CUDADeviceAttr {{.*}}Implicit __device__ __managed__ int m3a; diff --git a/clang/test/AST/ast-dump-msp430-attr.c b/clang/test/AST/ast-dump-msp430-attr.c index f228cd8dbdb85..c182afb114427 100644 --- a/clang/test/AST/ast-dump-msp430-attr.c +++ b/clang/test/AST/ast-dump-msp430-attr.c @@ -10,4 +10,4 @@ __attribute__((interrupt(12))) void Test(void); // CHECK: FunctionDecl{{.*}}Test -// CHECK-NEXT: MSP430InterruptAttr +// CHECK-NEXT: attrDetails: MSP430InterruptAttr diff --git a/clang/test/AST/ast-dump-openmp-atomic.c b/clang/test/AST/ast-dump-openmp-atomic.c index 2bd9f558b749a..8d81ade32ab19 100644 --- a/clang/test/AST/ast-dump-openmp-atomic.c +++ b/clang/test/AST/ast-dump-openmp-atomic.c @@ -8,7 +8,7 @@ void test(int i) { // CHECK: TranslationUnitDecl {{.*}} <> // CHECK: `-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-atomic.c:3:1, line:6:1> line:3:6 test 'void (int)' // CHECK-NEXT: |-ParmVarDecl {{.*}} col:15 used i 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} +// CHECK: `-CompoundStmt {{.*}} // CHECK-NEXT: `-OMPAtomicDirective {{.*}} // CHECK-NEXT: `-UnaryOperator {{.*}} 'int' prefix '++' // CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'i' 'int' diff --git a/clang/test/AST/ast-dump-openmp-begin-declare-variant-varying-return.c b/clang/test/AST/ast-dump-openmp-begin-declare-variant-varying-return.c index 5c7ff8d751879..8d4618c7ae73a 100644 --- a/clang/test/AST/ast-dump-openmp-begin-declare-variant-varying-return.c +++ b/clang/test/AST/ast-dump-openmp-begin-declare-variant-varying-return.c @@ -77,51 +77,51 @@ int main(void) { // C_FLOAT-NEXT: | | `-ReturnStmt [[ADDR_2:0x[a-z0-9]*]] // C_FLOAT-NEXT: | | `-ImplicitCastExpr [[ADDR_3:0x[a-z0-9]*]] 'float' // C_FLOAT-NEXT: | | `-IntegerLiteral [[ADDR_4:0x[a-z0-9]*]] 'int' 0 -// C_FLOAT-NEXT: | `-OverloadableAttr [[ADDR_5:0x[a-z0-9]*]] +// C_FLOAT-NEXT: | `-attrDetails: OverloadableAttr [[ADDR_5:0x[a-z0-9]*]] // C_FLOAT-NEXT: |-FunctionDecl [[ADDR_6:0x[a-z0-9]*]] line:32:11 used also_before 'float (int)' // C_FLOAT-NEXT: | |-ParmVarDecl [[ADDR_7:0x[a-z0-9]*]] col:27 i 'int' -// C_FLOAT-NEXT: | |-CompoundStmt [[ADDR_8:0x[a-z0-9]*]] +// C_FLOAT: | |-CompoundStmt [[ADDR_8:0x[a-z0-9]*]] // C_FLOAT-NEXT: | | `-ReturnStmt [[ADDR_9:0x[a-z0-9]*]] // C_FLOAT-NEXT: | | `-ImplicitCastExpr [[ADDR_10:0x[a-z0-9]*]] 'float' // C_FLOAT-NEXT: | | `-IntegerLiteral [[ADDR_11:0x[a-z0-9]*]] 'int' 0 -// C_FLOAT-NEXT: | `-OverloadableAttr [[ADDR_12:0x[a-z0-9]*]] +// C_FLOAT-NEXT: | `-attrDetails: OverloadableAttr [[ADDR_12:0x[a-z0-9]*]] // C_FLOAT-NEXT: |-FunctionDecl [[ADDR_13:0x[a-z0-9]*]] line:10:22 also_before[implementation={extension(disable_implicit_base)}] 'int ({{.*}})' // C_FLOAT-NEXT: | |-CompoundStmt [[ADDR_14:0x[a-z0-9]*]] // C_FLOAT-NEXT: | | `-ReturnStmt [[ADDR_15:0x[a-z0-9]*]] // C_FLOAT-NEXT: | | `-IntegerLiteral [[ADDR_16:0x[a-z0-9]*]] 'int' 1 -// C_FLOAT-NEXT: | `-OverloadableAttr [[ADDR_17:0x[a-z0-9]*]] +// C_FLOAT-NEXT: | `-attrDetails: OverloadableAttr [[ADDR_17:0x[a-z0-9]*]] // C_FLOAT-NEXT: |-FunctionDecl [[ADDR_18:0x[a-z0-9]*]] line:10:22 also_before[implementation={extension(disable_implicit_base)}] 'int (int)' // C_FLOAT-NEXT: | |-ParmVarDecl [[ADDR_19:0x[a-z0-9]*]] col:21 i 'int' -// C_FLOAT-NEXT: | |-CompoundStmt [[ADDR_20:0x[a-z0-9]*]] +// C_FLOAT: | |-CompoundStmt [[ADDR_20:0x[a-z0-9]*]] // C_FLOAT-NEXT: | | `-ReturnStmt [[ADDR_21:0x[a-z0-9]*]] // C_FLOAT-NEXT: | | `-IntegerLiteral [[ADDR_22:0x[a-z0-9]*]] 'int' 1 -// C_FLOAT-NEXT: | `-OverloadableAttr [[ADDR_23:0x[a-z0-9]*]] +// C_FLOAT-NEXT: | `-attrDetails: OverloadableAttr [[ADDR_23:0x[a-z0-9]*]] // C_FLOAT-NEXT: |-FunctionDecl [[ADDR_24:0x[a-z0-9]*]] line:10:22 also_after[implementation={extension(disable_implicit_base)}] 'int (double)' // C_FLOAT-NEXT: | |-ParmVarDecl [[ADDR_25:0x[a-z0-9]*]] col:23 d 'double' -// C_FLOAT-NEXT: | |-CompoundStmt [[ADDR_26:0x[a-z0-9]*]] +// C_FLOAT: | |-CompoundStmt [[ADDR_26:0x[a-z0-9]*]] // C_FLOAT-NEXT: | | `-ReturnStmt [[ADDR_27:0x[a-z0-9]*]] // C_FLOAT-NEXT: | | `-IntegerLiteral [[ADDR_28:0x[a-z0-9]*]] 'int' 0 -// C_FLOAT-NEXT: | `-OverloadableAttr [[ADDR_29:0x[a-z0-9]*]] +// C_FLOAT-NEXT: | `-attrDetails: OverloadableAttr [[ADDR_29:0x[a-z0-9]*]] // C_FLOAT-NEXT: |-FunctionDecl [[ADDR_30:0x[a-z0-9]*]] line:10:22 also_after[implementation={extension(disable_implicit_base)}] 'int (long)' // C_FLOAT-NEXT: | |-ParmVarDecl [[ADDR_31:0x[a-z0-9]*]] col:21 l 'long' -// C_FLOAT-NEXT: | |-CompoundStmt [[ADDR_32:0x[a-z0-9]*]] +// C_FLOAT: | |-CompoundStmt [[ADDR_32:0x[a-z0-9]*]] // C_FLOAT-NEXT: | | `-ReturnStmt [[ADDR_33:0x[a-z0-9]*]] // C_FLOAT-NEXT: | | `-IntegerLiteral [[ADDR_34:0x[a-z0-9]*]] 'int' 0 -// C_FLOAT-NEXT: | `-OverloadableAttr [[ADDR_35:0x[a-z0-9]*]] +// C_FLOAT-NEXT: | `-attrDetails: OverloadableAttr [[ADDR_35:0x[a-z0-9]*]] // C_FLOAT-NEXT: |-FunctionDecl [[ADDR_36:0x[a-z0-9]*]] line:57:11 used also_after 'float (double)' // C_FLOAT-NEXT: | |-ParmVarDecl [[ADDR_37:0x[a-z0-9]*]] col:29 d 'double' -// C_FLOAT-NEXT: | |-CompoundStmt [[ADDR_38:0x[a-z0-9]*]] +// C_FLOAT: | |-CompoundStmt [[ADDR_38:0x[a-z0-9]*]] // C_FLOAT-NEXT: | | `-ReturnStmt [[ADDR_39:0x[a-z0-9]*]] // C_FLOAT-NEXT: | | `-ImplicitCastExpr [[ADDR_40:0x[a-z0-9]*]] 'float' // C_FLOAT-NEXT: | | `-IntegerLiteral [[ADDR_41:0x[a-z0-9]*]] 'int' 1 -// C_FLOAT-NEXT: | `-OverloadableAttr [[ADDR_42:0x[a-z0-9]*]] +// C_FLOAT-NEXT: | `-attrDetails: OverloadableAttr [[ADDR_42:0x[a-z0-9]*]] // C_FLOAT-NEXT: |-FunctionDecl [[ADDR_43:0x[a-z0-9]*]] line:61:11 used also_after 'float (long)' // C_FLOAT-NEXT: | |-ParmVarDecl [[ADDR_44:0x[a-z0-9]*]] col:27 l 'long' -// C_FLOAT-NEXT: | |-CompoundStmt [[ADDR_45:0x[a-z0-9]*]] +// C_FLOAT: | |-CompoundStmt [[ADDR_45:0x[a-z0-9]*]] // C_FLOAT-NEXT: | | `-ReturnStmt [[ADDR_46:0x[a-z0-9]*]] // C_FLOAT-NEXT: | | `-ImplicitCastExpr [[ADDR_47:0x[a-z0-9]*]] 'float' // C_FLOAT-NEXT: | | `-IntegerLiteral [[ADDR_48:0x[a-z0-9]*]] 'int' 1 -// C_FLOAT-NEXT: | `-OverloadableAttr [[ADDR_49:0x[a-z0-9]*]] +// C_FLOAT-NEXT: | `-attrDetails: OverloadableAttr [[ADDR_49:0x[a-z0-9]*]] // C_FLOAT-NEXT: `-FunctionDecl [[ADDR_50:0x[a-z0-9]*]] line:65:5 main 'int ({{.*}})' // C_FLOAT-NEXT: `-CompoundStmt [[ADDR_51:0x[a-z0-9]*]] // C_FLOAT-NEXT: `-ReturnStmt [[ADDR_52:0x[a-z0-9]*]] @@ -158,7 +158,7 @@ int main(void) { // CXX_FLOAT-NEXT: | `-IntegerLiteral [[ADDR_4:0x[a-z0-9]*]] 'int' 0 // CXX_FLOAT-NEXT: |-FunctionDecl [[ADDR_5:0x[a-z0-9]*]] line:32:11 used also_before 'float (int)' // CXX_FLOAT-NEXT: | |-ParmVarDecl [[ADDR_6:0x[a-z0-9]*]] col:27 i 'int' -// CXX_FLOAT-NEXT: | `-CompoundStmt [[ADDR_7:0x[a-z0-9]*]] +// CXX_FLOAT: | `-CompoundStmt [[ADDR_7:0x[a-z0-9]*]] // CXX_FLOAT-NEXT: | `-ReturnStmt [[ADDR_8:0x[a-z0-9]*]] // CXX_FLOAT-NEXT: | `-ImplicitCastExpr [[ADDR_9:0x[a-z0-9]*]] 'float' // CXX_FLOAT-NEXT: | `-IntegerLiteral [[ADDR_10:0x[a-z0-9]*]] 'int' 0 @@ -168,28 +168,28 @@ int main(void) { // CXX_FLOAT-NEXT: | `-IntegerLiteral [[ADDR_14:0x[a-z0-9]*]] 'int' 1 // CXX_FLOAT-NEXT: |-FunctionDecl [[ADDR_15:0x[a-z0-9]*]] line:42:1 also_before[implementation={extension(disable_implicit_base)}] 'int (int)' // CXX_FLOAT-NEXT: | |-ParmVarDecl [[ADDR_16:0x[a-z0-9]*]] col:21 i 'int' -// CXX_FLOAT-NEXT: | `-CompoundStmt [[ADDR_17:0x[a-z0-9]*]] +// CXX_FLOAT: | `-CompoundStmt [[ADDR_17:0x[a-z0-9]*]] // CXX_FLOAT-NEXT: | `-ReturnStmt [[ADDR_18:0x[a-z0-9]*]] // CXX_FLOAT-NEXT: | `-IntegerLiteral [[ADDR_19:0x[a-z0-9]*]] 'int' 1 // CXX_FLOAT-NEXT: |-FunctionDecl [[ADDR_20:0x[a-z0-9]*]] line:47:1 also_after[implementation={extension(disable_implicit_base)}] 'int (double)' // CXX_FLOAT-NEXT: | |-ParmVarDecl [[ADDR_21:0x[a-z0-9]*]] col:23 d 'double' -// CXX_FLOAT-NEXT: | `-CompoundStmt [[ADDR_22:0x[a-z0-9]*]] +// CXX_FLOAT: | `-CompoundStmt [[ADDR_22:0x[a-z0-9]*]] // CXX_FLOAT-NEXT: | `-ReturnStmt [[ADDR_23:0x[a-z0-9]*]] // CXX_FLOAT-NEXT: | `-IntegerLiteral [[ADDR_24:0x[a-z0-9]*]] 'int' 0 // CXX_FLOAT-NEXT: |-FunctionDecl [[ADDR_25:0x[a-z0-9]*]] line:51:1 also_after[implementation={extension(disable_implicit_base)}] 'int (long)' // CXX_FLOAT-NEXT: | |-ParmVarDecl [[ADDR_26:0x[a-z0-9]*]] col:21 l 'long' -// CXX_FLOAT-NEXT: | `-CompoundStmt [[ADDR_27:0x[a-z0-9]*]] +// CXX_FLOAT: | `-CompoundStmt [[ADDR_27:0x[a-z0-9]*]] // CXX_FLOAT-NEXT: | `-ReturnStmt [[ADDR_28:0x[a-z0-9]*]] // CXX_FLOAT-NEXT: | `-IntegerLiteral [[ADDR_29:0x[a-z0-9]*]] 'int' 0 // CXX_FLOAT-NEXT: |-FunctionDecl [[ADDR_30:0x[a-z0-9]*]] line:57:11 used also_after 'float (double)' // CXX_FLOAT-NEXT: | |-ParmVarDecl [[ADDR_31:0x[a-z0-9]*]] col:29 d 'double' -// CXX_FLOAT-NEXT: | `-CompoundStmt [[ADDR_32:0x[a-z0-9]*]] +// CXX_FLOAT: | `-CompoundStmt [[ADDR_32:0x[a-z0-9]*]] // CXX_FLOAT-NEXT: | `-ReturnStmt [[ADDR_33:0x[a-z0-9]*]] // CXX_FLOAT-NEXT: | `-ImplicitCastExpr [[ADDR_34:0x[a-z0-9]*]] 'float' // CXX_FLOAT-NEXT: | `-IntegerLiteral [[ADDR_35:0x[a-z0-9]*]] 'int' 1 // CXX_FLOAT-NEXT: |-FunctionDecl [[ADDR_36:0x[a-z0-9]*]] line:61:11 used also_after 'float (long)' // CXX_FLOAT-NEXT: | |-ParmVarDecl [[ADDR_37:0x[a-z0-9]*]] col:27 l 'long' -// CXX_FLOAT-NEXT: | `-CompoundStmt [[ADDR_38:0x[a-z0-9]*]] +// CXX_FLOAT: | `-CompoundStmt [[ADDR_38:0x[a-z0-9]*]] // CXX_FLOAT-NEXT: | `-ReturnStmt [[ADDR_39:0x[a-z0-9]*]] // CXX_FLOAT-NEXT: | `-ImplicitCastExpr [[ADDR_40:0x[a-z0-9]*]] 'float' // CXX_FLOAT-NEXT: | `-IntegerLiteral [[ADDR_41:0x[a-z0-9]*]] 'int' 1 @@ -226,52 +226,52 @@ int main(void) { // C_INT-NEXT: | |-CompoundStmt [[ADDR_1:0x[a-z0-9]*]] // C_INT-NEXT: | | `-ReturnStmt [[ADDR_2:0x[a-z0-9]*]] // C_INT-NEXT: | | `-IntegerLiteral [[ADDR_3:0x[a-z0-9]*]] 'int' 1 -// C_INT-NEXT: | |-OverloadableAttr [[ADDR_4:0x[a-z0-9]*]] -// C_INT-NEXT: | `-OMPDeclareVariantAttr [[ADDR_5:0x[a-z0-9]*]] <> Implicit implementation={extension(disable_implicit_base)} +// C_INT-NEXT: | |-attrDetails: OverloadableAttr [[ADDR_4:0x[a-z0-9]*]] +// C_INT-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_5:0x[a-z0-9]*]] <> Implicit implementation={extension(disable_implicit_base)} // C_INT-NEXT: | `-DeclRefExpr [[ADDR_6:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_7:0x[a-z0-9]*]] 'also_before[implementation={extension(disable_implicit_base)}]' 'int ({{.*}})' // C_INT-NEXT: |-FunctionDecl [[ADDR_8:0x[a-z0-9]*]] line:32:11 used also_before 'int (int)' // C_INT-NEXT: | |-ParmVarDecl [[ADDR_9:0x[a-z0-9]*]] col:27 i 'int' -// C_INT-NEXT: | |-CompoundStmt [[ADDR_10:0x[a-z0-9]*]] +// C_INT: | |-CompoundStmt [[ADDR_10:0x[a-z0-9]*]] // C_INT-NEXT: | | `-ReturnStmt [[ADDR_11:0x[a-z0-9]*]] // C_INT-NEXT: | | `-IntegerLiteral [[ADDR_12:0x[a-z0-9]*]] 'int' 1 -// C_INT-NEXT: | |-OverloadableAttr [[ADDR_13:0x[a-z0-9]*]] -// C_INT-NEXT: | `-OMPDeclareVariantAttr [[ADDR_14:0x[a-z0-9]*]] <> Implicit implementation={extension(disable_implicit_base)} +// C_INT-NEXT: | |-attrDetails: OverloadableAttr [[ADDR_13:0x[a-z0-9]*]] +// C_INT-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_14:0x[a-z0-9]*]] <> Implicit implementation={extension(disable_implicit_base)} // C_INT-NEXT: | `-DeclRefExpr [[ADDR_15:0x[a-z0-9]*]] 'int (int)' Function [[ADDR_16:0x[a-z0-9]*]] 'also_before[implementation={extension(disable_implicit_base)}]' 'int (int)' // C_INT-NEXT: |-FunctionDecl [[ADDR_7]] line:10:22 also_before[implementation={extension(disable_implicit_base)}] 'int ({{.*}})' // C_INT-NEXT: | |-CompoundStmt [[ADDR_17:0x[a-z0-9]*]] // C_INT-NEXT: | | `-ReturnStmt [[ADDR_18:0x[a-z0-9]*]] // C_INT-NEXT: | | `-IntegerLiteral [[ADDR_19:0x[a-z0-9]*]] 'int' 0 -// C_INT-NEXT: | `-OverloadableAttr [[ADDR_20:0x[a-z0-9]*]] +// C_INT-NEXT: | `-attrDetails: OverloadableAttr [[ADDR_20:0x[a-z0-9]*]] // C_INT-NEXT: |-FunctionDecl [[ADDR_16]] line:10:22 also_before[implementation={extension(disable_implicit_base)}] 'int (int)' // C_INT-NEXT: | |-ParmVarDecl [[ADDR_21:0x[a-z0-9]*]] col:21 i 'int' -// C_INT-NEXT: | |-CompoundStmt [[ADDR_22:0x[a-z0-9]*]] +// C_INT: | |-CompoundStmt [[ADDR_22:0x[a-z0-9]*]] // C_INT-NEXT: | | `-ReturnStmt [[ADDR_23:0x[a-z0-9]*]] // C_INT-NEXT: | | `-IntegerLiteral [[ADDR_24:0x[a-z0-9]*]] 'int' 0 -// C_INT-NEXT: | `-OverloadableAttr [[ADDR_25:0x[a-z0-9]*]] +// C_INT-NEXT: | `-attrDetails: OverloadableAttr [[ADDR_25:0x[a-z0-9]*]] // C_INT-NEXT: |-FunctionDecl [[ADDR_26:0x[a-z0-9]*]] line:10:22 also_after[implementation={extension(disable_implicit_base)}] 'int (double)' // C_INT-NEXT: | |-ParmVarDecl [[ADDR_27:0x[a-z0-9]*]] col:23 d 'double' -// C_INT-NEXT: | |-CompoundStmt [[ADDR_28:0x[a-z0-9]*]] +// C_INT: | |-CompoundStmt [[ADDR_28:0x[a-z0-9]*]] // C_INT-NEXT: | | `-ReturnStmt [[ADDR_29:0x[a-z0-9]*]] // C_INT-NEXT: | | `-IntegerLiteral [[ADDR_30:0x[a-z0-9]*]] 'int' 1 -// C_INT-NEXT: | `-OverloadableAttr [[ADDR_31:0x[a-z0-9]*]] +// C_INT-NEXT: | `-attrDetails: OverloadableAttr [[ADDR_31:0x[a-z0-9]*]] // C_INT-NEXT: |-FunctionDecl [[ADDR_32:0x[a-z0-9]*]] line:10:22 also_after[implementation={extension(disable_implicit_base)}] 'int (long)' // C_INT-NEXT: | |-ParmVarDecl [[ADDR_33:0x[a-z0-9]*]] col:21 l 'long' -// C_INT-NEXT: | |-CompoundStmt [[ADDR_34:0x[a-z0-9]*]] +// C_INT: | |-CompoundStmt [[ADDR_34:0x[a-z0-9]*]] // C_INT-NEXT: | | `-ReturnStmt [[ADDR_35:0x[a-z0-9]*]] // C_INT-NEXT: | | `-IntegerLiteral [[ADDR_36:0x[a-z0-9]*]] 'int' 1 -// C_INT-NEXT: | `-OverloadableAttr [[ADDR_37:0x[a-z0-9]*]] +// C_INT-NEXT: | `-attrDetails: OverloadableAttr [[ADDR_37:0x[a-z0-9]*]] // C_INT-NEXT: |-FunctionDecl [[ADDR_38:0x[a-z0-9]*]] line:57:11 used also_after 'int (double)' // C_INT-NEXT: | |-ParmVarDecl [[ADDR_39:0x[a-z0-9]*]] col:29 d 'double' -// C_INT-NEXT: | |-CompoundStmt [[ADDR_40:0x[a-z0-9]*]] +// C_INT: | |-CompoundStmt [[ADDR_40:0x[a-z0-9]*]] // C_INT-NEXT: | | `-ReturnStmt [[ADDR_41:0x[a-z0-9]*]] // C_INT-NEXT: | | `-IntegerLiteral [[ADDR_42:0x[a-z0-9]*]] 'int' 0 -// C_INT-NEXT: | `-OverloadableAttr [[ADDR_43:0x[a-z0-9]*]] +// C_INT-NEXT: | `-attrDetails: OverloadableAttr [[ADDR_43:0x[a-z0-9]*]] // C_INT-NEXT: |-FunctionDecl [[ADDR_44:0x[a-z0-9]*]] line:61:11 used also_after 'int (long)' // C_INT-NEXT: | |-ParmVarDecl [[ADDR_45:0x[a-z0-9]*]] col:27 l 'long' -// C_INT-NEXT: | |-CompoundStmt [[ADDR_46:0x[a-z0-9]*]] +// C_INT: | |-CompoundStmt [[ADDR_46:0x[a-z0-9]*]] // C_INT-NEXT: | | `-ReturnStmt [[ADDR_47:0x[a-z0-9]*]] // C_INT-NEXT: | | `-IntegerLiteral [[ADDR_48:0x[a-z0-9]*]] 'int' 0 -// C_INT-NEXT: | `-OverloadableAttr [[ADDR_49:0x[a-z0-9]*]] +// C_INT-NEXT: | `-attrDetails: OverloadableAttr [[ADDR_49:0x[a-z0-9]*]] // C_INT-NEXT: `-FunctionDecl [[ADDR_50:0x[a-z0-9]*]] line:65:5 main 'int ({{.*}})' // C_INT-NEXT: `-CompoundStmt [[ADDR_51:0x[a-z0-9]*]] // C_INT-NEXT: `-ReturnStmt [[ADDR_52:0x[a-z0-9]*]] @@ -319,14 +319,14 @@ int main(void) { // CXX_INT-NEXT: | |-CompoundStmt [[ADDR_1:0x[a-z0-9]*]] // CXX_INT-NEXT: | | `-ReturnStmt [[ADDR_2:0x[a-z0-9]*]] // CXX_INT-NEXT: | | `-IntegerLiteral [[ADDR_3:0x[a-z0-9]*]] 'int' 1 -// CXX_INT-NEXT: | `-OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={extension(disable_implicit_base)} +// CXX_INT-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={extension(disable_implicit_base)} // CXX_INT-NEXT: | `-DeclRefExpr [[ADDR_5:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_6:0x[a-z0-9]*]] 'also_before[implementation={extension(disable_implicit_base)}]' 'int ({{.*}})' // CXX_INT-NEXT: |-FunctionDecl [[ADDR_7:0x[a-z0-9]*]] line:32:11 used also_before 'int (int)' // CXX_INT-NEXT: | |-ParmVarDecl [[ADDR_8:0x[a-z0-9]*]] col:27 i 'int' -// CXX_INT-NEXT: | |-CompoundStmt [[ADDR_9:0x[a-z0-9]*]] +// CXX_INT: | |-CompoundStmt [[ADDR_9:0x[a-z0-9]*]] // CXX_INT-NEXT: | | `-ReturnStmt [[ADDR_10:0x[a-z0-9]*]] // CXX_INT-NEXT: | | `-IntegerLiteral [[ADDR_11:0x[a-z0-9]*]] 'int' 1 -// CXX_INT-NEXT: | `-OMPDeclareVariantAttr [[ADDR_12:0x[a-z0-9]*]] <> Implicit implementation={extension(disable_implicit_base)} +// CXX_INT-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_12:0x[a-z0-9]*]] <> Implicit implementation={extension(disable_implicit_base)} // CXX_INT-NEXT: | `-DeclRefExpr [[ADDR_13:0x[a-z0-9]*]] 'int (int)' Function [[ADDR_14:0x[a-z0-9]*]] 'also_before[implementation={extension(disable_implicit_base)}]' 'int (int)' // CXX_INT-NEXT: |-FunctionDecl [[ADDR_6]] line:38:1 also_before[implementation={extension(disable_implicit_base)}] 'int ({{.*}})' // CXX_INT-NEXT: | `-CompoundStmt [[ADDR_15:0x[a-z0-9]*]] @@ -334,27 +334,27 @@ int main(void) { // CXX_INT-NEXT: | `-IntegerLiteral [[ADDR_17:0x[a-z0-9]*]] 'int' 0 // CXX_INT-NEXT: |-FunctionDecl [[ADDR_14]] line:42:1 also_before[implementation={extension(disable_implicit_base)}] 'int (int)' // CXX_INT-NEXT: | |-ParmVarDecl [[ADDR_18:0x[a-z0-9]*]] col:21 i 'int' -// CXX_INT-NEXT: | `-CompoundStmt [[ADDR_19:0x[a-z0-9]*]] +// CXX_INT: | `-CompoundStmt [[ADDR_19:0x[a-z0-9]*]] // CXX_INT-NEXT: | `-ReturnStmt [[ADDR_20:0x[a-z0-9]*]] // CXX_INT-NEXT: | `-IntegerLiteral [[ADDR_21:0x[a-z0-9]*]] 'int' 0 // CXX_INT-NEXT: |-FunctionDecl [[ADDR_22:0x[a-z0-9]*]] line:47:1 also_after[implementation={extension(disable_implicit_base)}] 'int (double)' // CXX_INT-NEXT: | |-ParmVarDecl [[ADDR_23:0x[a-z0-9]*]] col:23 d 'double' -// CXX_INT-NEXT: | `-CompoundStmt [[ADDR_24:0x[a-z0-9]*]] +// CXX_INT: | `-CompoundStmt [[ADDR_24:0x[a-z0-9]*]] // CXX_INT-NEXT: | `-ReturnStmt [[ADDR_25:0x[a-z0-9]*]] // CXX_INT-NEXT: | `-IntegerLiteral [[ADDR_26:0x[a-z0-9]*]] 'int' 1 // CXX_INT-NEXT: |-FunctionDecl [[ADDR_27:0x[a-z0-9]*]] line:51:1 also_after[implementation={extension(disable_implicit_base)}] 'int (long)' // CXX_INT-NEXT: | |-ParmVarDecl [[ADDR_28:0x[a-z0-9]*]] col:21 l 'long' -// CXX_INT-NEXT: | `-CompoundStmt [[ADDR_29:0x[a-z0-9]*]] +// CXX_INT: | `-CompoundStmt [[ADDR_29:0x[a-z0-9]*]] // CXX_INT-NEXT: | `-ReturnStmt [[ADDR_30:0x[a-z0-9]*]] // CXX_INT-NEXT: | `-IntegerLiteral [[ADDR_31:0x[a-z0-9]*]] 'int' 1 // CXX_INT-NEXT: |-FunctionDecl [[ADDR_32:0x[a-z0-9]*]] line:57:11 used also_after 'int (double)' // CXX_INT-NEXT: | |-ParmVarDecl [[ADDR_33:0x[a-z0-9]*]] col:29 d 'double' -// CXX_INT-NEXT: | `-CompoundStmt [[ADDR_34:0x[a-z0-9]*]] +// CXX_INT: | `-CompoundStmt [[ADDR_34:0x[a-z0-9]*]] // CXX_INT-NEXT: | `-ReturnStmt [[ADDR_35:0x[a-z0-9]*]] // CXX_INT-NEXT: | `-IntegerLiteral [[ADDR_36:0x[a-z0-9]*]] 'int' 0 // CXX_INT-NEXT: |-FunctionDecl [[ADDR_37:0x[a-z0-9]*]] line:61:11 used also_after 'int (long)' // CXX_INT-NEXT: | |-ParmVarDecl [[ADDR_38:0x[a-z0-9]*]] col:27 l 'long' -// CXX_INT-NEXT: | `-CompoundStmt [[ADDR_39:0x[a-z0-9]*]] +// CXX_INT: | `-CompoundStmt [[ADDR_39:0x[a-z0-9]*]] // CXX_INT-NEXT: | `-ReturnStmt [[ADDR_40:0x[a-z0-9]*]] // CXX_INT-NEXT: | `-IntegerLiteral [[ADDR_41:0x[a-z0-9]*]] 'int' 0 // CXX_INT-NEXT: `-FunctionDecl [[ADDR_42:0x[a-z0-9]*]] line:65:5 main 'int ({{.*}})' diff --git a/clang/test/AST/ast-dump-openmp-begin-declare-variant_10.c b/clang/test/AST/ast-dump-openmp-begin-declare-variant_10.c index 07274ec67ef40..3b6c99248075f 100644 --- a/clang/test/AST/ast-dump-openmp-begin-declare-variant_10.c +++ b/clang/test/AST/ast-dump-openmp-begin-declare-variant_10.c @@ -50,31 +50,31 @@ int main(void) { // C-NEXT: | |-CompoundStmt [[ADDR_1:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_2:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_3:0x[a-z0-9]*]] 'int' 1 -// C-NEXT: | `-OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// C-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // C-NEXT: | `-DeclRefExpr [[ADDR_5:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_6:0x[a-z0-9]*]] 'also_before1[implementation={vendor(llvm)}]' 'int ({{.*}})' // C-NEXT: |-FunctionDecl [[ADDR_7:0x[a-z0-9]*]] line:14:5 used also_before2 'int ({{.*}})' // C-NEXT: | |-CompoundStmt [[ADDR_8:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_9:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_10:0x[a-z0-9]*]] 'int' 2 -// C-NEXT: | `-OMPDeclareVariantAttr [[ADDR_11:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// C-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_11:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // C-NEXT: | `-DeclRefExpr [[ADDR_12:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_13:0x[a-z0-9]*]] 'also_before2[implementation={vendor(llvm)}]' 'int ({{.*}})' // C-NEXT: |-FunctionDecl [[ADDR_14:0x[a-z0-9]*]] line:17:5 used also_before3 'int ({{.*}})' // C-NEXT: | |-CompoundStmt [[ADDR_15:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_16:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_17:0x[a-z0-9]*]] 'int' 3 -// C-NEXT: | `-OMPDeclareVariantAttr [[ADDR_18:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// C-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_18:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // C-NEXT: | `-DeclRefExpr [[ADDR_19:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_20:0x[a-z0-9]*]] 'also_before3[implementation={vendor(llvm)}]' 'int ({{.*}})' // C-NEXT: |-FunctionDecl [[ADDR_21:0x[a-z0-9]*]] line:20:5 used also_before4 'int ({{.*}})' // C-NEXT: | |-CompoundStmt [[ADDR_22:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_23:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_24:0x[a-z0-9]*]] 'int' 4 -// C-NEXT: | `-OMPDeclareVariantAttr [[ADDR_25:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// C-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_25:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // C-NEXT: | `-DeclRefExpr [[ADDR_26:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_27:0x[a-z0-9]*]] 'also_before4[implementation={vendor(llvm)}]' 'int ({{.*}})' // C-NEXT: |-FunctionDecl [[ADDR_6]] line:8:15 also_before1[implementation={vendor(llvm)}] 'int ({{.*}})' // C-NEXT: | |-CompoundStmt [[ADDR_28:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_29:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_30:0x[a-z0-9]*]] 'int' 0 -// C-NEXT: | `-ConstAttr [[ADDR_31:0x[a-z0-9]*]] +// C-NEXT: | `-attrDetails: ConstAttr [[ADDR_31:0x[a-z0-9]*]] // C-NEXT: |-FunctionDecl [[ADDR_13]] line:28:1 also_before2[implementation={vendor(llvm)}] 'int ({{.*}})' static // C-NEXT: | `-CompoundStmt [[ADDR_32:0x[a-z0-9]*]] // C-NEXT: | `-ReturnStmt [[ADDR_33:0x[a-z0-9]*]] @@ -83,14 +83,14 @@ int main(void) { // C-NEXT: | |-CompoundStmt [[ADDR_35:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_36:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_37:0x[a-z0-9]*]] 'int' 0 -// C-NEXT: | `-NoThrowAttr [[ADDR_38:0x[a-z0-9]*]] +// C-NEXT: | `-attrDetails: NoThrowAttr [[ADDR_38:0x[a-z0-9]*]] // C-NEXT: |-FunctionDecl [[ADDR_27]] line:34:1 also_before4[implementation={vendor(llvm)}] 'int ({{.*}})' static inline // C-NEXT: | |-CompoundStmt [[ADDR_39:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_40:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_41:0x[a-z0-9]*]] 'int' 0 -// C-NEXT: | |-ConstAttr [[ADDR_42:0x[a-z0-9]*]] -// C-NEXT: | |-NoThrowAttr [[ADDR_43:0x[a-z0-9]*]] -// C-NEXT: | `-AlwaysInlineAttr [[ADDR_44:0x[a-z0-9]*]] always_inline +// C-NEXT: | |-attrDetails: ConstAttr [[ADDR_42:0x[a-z0-9]*]] +// C-NEXT: | |-attrDetails: NoThrowAttr [[ADDR_43:0x[a-z0-9]*]] +// C-NEXT: | `-attrDetails: AlwaysInlineAttr [[ADDR_44:0x[a-z0-9]*]] always_inline // C-NEXT: `-FunctionDecl [[ADDR_45:0x[a-z0-9]*]] line:40:5 main 'int ({{.*}})' // C-NEXT: `-CompoundStmt [[ADDR_46:0x[a-z0-9]*]] // C-NEXT: `-ReturnStmt [[ADDR_47:0x[a-z0-9]*]] @@ -130,25 +130,25 @@ int main(void) { // CXX-NEXT: | |-CompoundStmt [[ADDR_1:0x[a-z0-9]*]] // CXX-NEXT: | | `-ReturnStmt [[ADDR_2:0x[a-z0-9]*]] // CXX-NEXT: | | `-IntegerLiteral [[ADDR_3:0x[a-z0-9]*]] 'int' 1 -// CXX-NEXT: | `-OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// CXX-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // CXX-NEXT: | `-DeclRefExpr [[ADDR_5:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_6:0x[a-z0-9]*]] 'also_before1[implementation={vendor(llvm)}]' 'int ({{.*}})' // CXX-NEXT: |-FunctionDecl [[ADDR_7:0x[a-z0-9]*]] line:14:5 used also_before2 'int ({{.*}})' // CXX-NEXT: | |-CompoundStmt [[ADDR_8:0x[a-z0-9]*]] // CXX-NEXT: | | `-ReturnStmt [[ADDR_9:0x[a-z0-9]*]] // CXX-NEXT: | | `-IntegerLiteral [[ADDR_10:0x[a-z0-9]*]] 'int' 2 -// CXX-NEXT: | `-OMPDeclareVariantAttr [[ADDR_11:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// CXX-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_11:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // CXX-NEXT: | `-DeclRefExpr [[ADDR_12:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_13:0x[a-z0-9]*]] 'also_before2[implementation={vendor(llvm)}]' 'int ({{.*}})' // CXX-NEXT: |-FunctionDecl [[ADDR_14:0x[a-z0-9]*]] line:17:5 used also_before3 'int ({{.*}})' // CXX-NEXT: | |-CompoundStmt [[ADDR_15:0x[a-z0-9]*]] // CXX-NEXT: | | `-ReturnStmt [[ADDR_16:0x[a-z0-9]*]] // CXX-NEXT: | | `-IntegerLiteral [[ADDR_17:0x[a-z0-9]*]] 'int' 3 -// CXX-NEXT: | `-OMPDeclareVariantAttr [[ADDR_18:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// CXX-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_18:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // CXX-NEXT: | `-DeclRefExpr [[ADDR_19:0x[a-z0-9]*]] 'int ({{.*}}) __attribute__((nothrow))' Function [[ADDR_20:0x[a-z0-9]*]] 'also_before3[implementation={vendor(llvm)}]' 'int ({{.*}}) __attribute__((nothrow))' // CXX-NEXT: |-FunctionDecl [[ADDR_21:0x[a-z0-9]*]] line:20:5 used also_before4 'int ({{.*}})' // CXX-NEXT: | |-CompoundStmt [[ADDR_22:0x[a-z0-9]*]] // CXX-NEXT: | | `-ReturnStmt [[ADDR_23:0x[a-z0-9]*]] // CXX-NEXT: | | `-IntegerLiteral [[ADDR_24:0x[a-z0-9]*]] 'int' 4 -// CXX-NEXT: | `-OMPDeclareVariantAttr [[ADDR_25:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// CXX-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_25:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // CXX-NEXT: | `-DeclRefExpr [[ADDR_26:0x[a-z0-9]*]] 'int ({{.*}}) __attribute__((nothrow))' Function [[ADDR_27:0x[a-z0-9]*]] 'also_before4[implementation={vendor(llvm)}]' 'int ({{.*}}) __attribute__((nothrow))' // CXX-NEXT: |-FunctionDecl [[ADDR_6]] line:6:15 constexpr also_before1[implementation={vendor(llvm)}] 'int ({{.*}})' // CXX-NEXT: | `-CompoundStmt [[ADDR_28:0x[a-z0-9]*]] @@ -166,7 +166,7 @@ int main(void) { // CXX-NEXT: | |-CompoundStmt [[ADDR_37:0x[a-z0-9]*]] // CXX-NEXT: | | `-ReturnStmt [[ADDR_38:0x[a-z0-9]*]] // CXX-NEXT: | | `-IntegerLiteral [[ADDR_39:0x[a-z0-9]*]] 'int' 0 -// CXX-NEXT: | `-AlwaysInlineAttr [[ADDR_40:0x[a-z0-9]*]] always_inline +// CXX-NEXT: | `-attrDetails: AlwaysInlineAttr [[ADDR_40:0x[a-z0-9]*]] always_inline // CXX-NEXT: `-FunctionDecl [[ADDR_41:0x[a-z0-9]*]] line:40:5 main 'int ({{.*}})' // CXX-NEXT: `-CompoundStmt [[ADDR_42:0x[a-z0-9]*]] // CXX-NEXT: `-ReturnStmt [[ADDR_43:0x[a-z0-9]*]] diff --git a/clang/test/AST/ast-dump-openmp-begin-declare-variant_11.c b/clang/test/AST/ast-dump-openmp-begin-declare-variant_11.c index 4c99f3311d8c3..11e828aa902f9 100644 --- a/clang/test/AST/ast-dump-openmp-begin-declare-variant_11.c +++ b/clang/test/AST/ast-dump-openmp-begin-declare-variant_11.c @@ -48,71 +48,71 @@ int main(void) { // - we pick the right callees // C: |-FunctionDecl [[ADDR_0:0x[a-z0-9]*]] <{{.*}}, line:13:27> col:11 implicit used also_after1 'int ({{.*}})' -// C-NEXT: | |-ConstAttr [[ADDR_1:0x[a-z0-9]*]] -// C-NEXT: | `-OMPDeclareVariantAttr [[ADDR_2:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// C-NEXT: | |-attrDetails: ConstAttr [[ADDR_1:0x[a-z0-9]*]] +// C-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_2:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // C-NEXT: | `-DeclRefExpr [[ADDR_3:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_4:0x[a-z0-9]*]] 'also_after1[implementation={vendor(llvm)}]' 'int ({{.*}})' // C-NEXT: |-FunctionDecl [[ADDR_4]] line:9:15 also_after1[implementation={vendor(llvm)}] 'int ({{.*}})' // C-NEXT: | |-CompoundStmt [[ADDR_5:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_6:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_7:0x[a-z0-9]*]] 'int' 0 -// C-NEXT: | `-ConstAttr [[ADDR_8:0x[a-z0-9]*]] +// C-NEXT: | `-attrDetails: ConstAttr [[ADDR_8:0x[a-z0-9]*]] // C-NEXT: |-FunctionDecl [[ADDR_9:0x[a-z0-9]*]] col:12 implicit used also_after2 'int ({{.*}})' static -// C-NEXT: | `-OMPDeclareVariantAttr [[ADDR_10:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// C-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_10:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // C-NEXT: | `-DeclRefExpr [[ADDR_11:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_12:0x[a-z0-9]*]] 'also_after2[implementation={vendor(llvm)}]' 'int ({{.*}})' // C-NEXT: |-FunctionDecl [[ADDR_12]] line:16:1 also_after2[implementation={vendor(llvm)}] 'int ({{.*}})' static // C-NEXT: | `-CompoundStmt [[ADDR_13:0x[a-z0-9]*]] // C-NEXT: | `-ReturnStmt [[ADDR_14:0x[a-z0-9]*]] // C-NEXT: | `-IntegerLiteral [[ADDR_15:0x[a-z0-9]*]] 'int' 0 // C-NEXT: |-FunctionDecl [[ADDR_16:0x[a-z0-9]*]] col:30 implicit used also_after3 'int ({{.*}})' -// C-NEXT: | |-NoThrowAttr [[ADDR_17:0x[a-z0-9]*]] -// C-NEXT: | `-OMPDeclareVariantAttr [[ADDR_18:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// C-NEXT: | |-attrDetails: NoThrowAttr [[ADDR_17:0x[a-z0-9]*]] +// C-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_18:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // C-NEXT: | `-DeclRefExpr [[ADDR_19:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_20:0x[a-z0-9]*]] 'also_after3[implementation={vendor(llvm)}]' 'int ({{.*}})' // C-NEXT: |-FunctionDecl [[ADDR_20]] line:19:1 also_after3[implementation={vendor(llvm)}] 'int ({{.*}})' // C-NEXT: | |-CompoundStmt [[ADDR_21:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_22:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_23:0x[a-z0-9]*]] 'int' 0 -// C-NEXT: | `-NoThrowAttr [[ADDR_24:0x[a-z0-9]*]] +// C-NEXT: | `-attrDetails: NoThrowAttr [[ADDR_24:0x[a-z0-9]*]] // C-NEXT: |-FunctionDecl [[ADDR_25:0x[a-z0-9]*]] col:69 implicit used also_after4 'int ({{.*}})' static inline -// C-NEXT: | |-ConstAttr [[ADDR_26:0x[a-z0-9]*]] -// C-NEXT: | |-NoThrowAttr [[ADDR_27:0x[a-z0-9]*]] -// C-NEXT: | |-AlwaysInlineAttr [[ADDR_28:0x[a-z0-9]*]] always_inline -// C-NEXT: | `-OMPDeclareVariantAttr [[ADDR_29:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// C-NEXT: | |-attrDetails: ConstAttr [[ADDR_26:0x[a-z0-9]*]] +// C-NEXT: | |-attrDetails: NoThrowAttr [[ADDR_27:0x[a-z0-9]*]] +// C-NEXT: | |-attrDetails: AlwaysInlineAttr [[ADDR_28:0x[a-z0-9]*]] always_inline +// C-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_29:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // C-NEXT: | `-DeclRefExpr [[ADDR_30:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_31:0x[a-z0-9]*]] 'also_after4[implementation={vendor(llvm)}]' 'int ({{.*}})' // C-NEXT: |-FunctionDecl [[ADDR_31]] line:22:1 also_after4[implementation={vendor(llvm)}] 'int ({{.*}})' static inline // C-NEXT: | |-CompoundStmt [[ADDR_32:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_33:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_34:0x[a-z0-9]*]] 'int' 0 -// C-NEXT: | |-ConstAttr [[ADDR_35:0x[a-z0-9]*]] -// C-NEXT: | |-NoThrowAttr [[ADDR_36:0x[a-z0-9]*]] -// C-NEXT: | `-AlwaysInlineAttr [[ADDR_37:0x[a-z0-9]*]] always_inline +// C-NEXT: | |-attrDetails: ConstAttr [[ADDR_35:0x[a-z0-9]*]] +// C-NEXT: | |-attrDetails: NoThrowAttr [[ADDR_36:0x[a-z0-9]*]] +// C-NEXT: | `-attrDetails: AlwaysInlineAttr [[ADDR_37:0x[a-z0-9]*]] always_inline // C-NEXT: |-FunctionDecl [[ADDR_38:0x[a-z0-9]*]] prev [[ADDR_0]] line:27:5 used also_after1 'int ({{.*}})' // C-NEXT: | |-CompoundStmt [[ADDR_39:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_40:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_41:0x[a-z0-9]*]] 'int' 1 -// C-NEXT: | |-ConstAttr [[ADDR_42:0x[a-z0-9]*]] Inherited -// C-NEXT: | `-OMPDeclareVariantAttr [[ADDR_43:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} +// C-NEXT: | |-attrDetails: ConstAttr [[ADDR_42:0x[a-z0-9]*]] Inherited +// C-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_43:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} // C-NEXT: | `-DeclRefExpr [[ADDR_3]] 'int ({{.*}})' Function [[ADDR_4]] 'also_after1[implementation={vendor(llvm)}]' 'int ({{.*}})' // C-NEXT: |-FunctionDecl [[ADDR_44:0x[a-z0-9]*]] prev [[ADDR_9]] line:30:5 used also_after2 'int ({{.*}})' // C-NEXT: | |-CompoundStmt [[ADDR_45:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_46:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_47:0x[a-z0-9]*]] 'int' 2 -// C-NEXT: | `-OMPDeclareVariantAttr [[ADDR_48:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} +// C-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_48:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} // C-NEXT: | `-DeclRefExpr [[ADDR_11]] 'int ({{.*}})' Function [[ADDR_12]] 'also_after2[implementation={vendor(llvm)}]' 'int ({{.*}})' // C-NEXT: |-FunctionDecl [[ADDR_49:0x[a-z0-9]*]] prev [[ADDR_16]] line:33:5 used also_after3 'int ({{.*}})' // C-NEXT: | |-CompoundStmt [[ADDR_50:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_51:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_52:0x[a-z0-9]*]] 'int' 3 -// C-NEXT: | |-NoThrowAttr [[ADDR_53:0x[a-z0-9]*]] Inherited -// C-NEXT: | `-OMPDeclareVariantAttr [[ADDR_54:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} +// C-NEXT: | |-attrDetails: NoThrowAttr [[ADDR_53:0x[a-z0-9]*]] Inherited +// C-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_54:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} // C-NEXT: | `-DeclRefExpr [[ADDR_19]] 'int ({{.*}})' Function [[ADDR_20]] 'also_after3[implementation={vendor(llvm)}]' 'int ({{.*}})' // C-NEXT: |-FunctionDecl [[ADDR_55:0x[a-z0-9]*]] prev [[ADDR_25]] line:36:5 used also_after4 'int ({{.*}})' // C-NEXT: | |-CompoundStmt [[ADDR_56:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_57:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_58:0x[a-z0-9]*]] 'int' 4 -// C-NEXT: | |-ConstAttr [[ADDR_59:0x[a-z0-9]*]] Inherited -// C-NEXT: | |-NoThrowAttr [[ADDR_60:0x[a-z0-9]*]] Inherited -// C-NEXT: | |-AlwaysInlineAttr [[ADDR_61:0x[a-z0-9]*]] Inherited always_inline -// C-NEXT: | `-OMPDeclareVariantAttr [[ADDR_62:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} +// C-NEXT: | |-attrDetails: ConstAttr [[ADDR_59:0x[a-z0-9]*]] Inherited +// C-NEXT: | |-attrDetails: NoThrowAttr [[ADDR_60:0x[a-z0-9]*]] Inherited +// C-NEXT: | |-attrDetails: AlwaysInlineAttr [[ADDR_61:0x[a-z0-9]*]] Inherited always_inline +// C-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_62:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} // C-NEXT: | `-DeclRefExpr [[ADDR_30]] 'int ({{.*}})' Function [[ADDR_31]] 'also_after4[implementation={vendor(llvm)}]' 'int ({{.*}})' // C-NEXT: `-FunctionDecl [[ADDR_63:0x[a-z0-9]*]] line:41:5 main 'int ({{.*}})' // C-NEXT: `-CompoundStmt [[ADDR_64:0x[a-z0-9]*]] @@ -150,59 +150,59 @@ int main(void) { // C-NEXT: `-DeclRefExpr [[ADDR_30]] 'int ({{.*}})' Function [[ADDR_31]] 'also_after4[implementation={vendor(llvm)}]' 'int ({{.*}})' // CXX: |-FunctionDecl [[ADDR_0:0x[a-z0-9]*]] <{{.*}}, line:13:27> col:11 implicit used constexpr also_after1 'int ({{.*}})' -// CXX-NEXT: | `-OMPDeclareVariantAttr [[ADDR_1:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// CXX-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_1:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // CXX-NEXT: | `-DeclRefExpr [[ADDR_2:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_3:0x[a-z0-9]*]] 'also_after1[implementation={vendor(llvm)}]' 'int ({{.*}})' // CXX-NEXT: |-FunctionDecl [[ADDR_3]] line:7:15 constexpr also_after1[implementation={vendor(llvm)}] 'int ({{.*}})' // CXX-NEXT: | `-CompoundStmt [[ADDR_4:0x[a-z0-9]*]] // CXX-NEXT: | `-ReturnStmt [[ADDR_5:0x[a-z0-9]*]] // CXX-NEXT: | `-IntegerLiteral [[ADDR_6:0x[a-z0-9]*]] 'int' 0 // CXX-NEXT: |-FunctionDecl [[ADDR_7:0x[a-z0-9]*]] col:12 implicit used also_after2 'int ({{.*}})' static -// CXX-NEXT: | `-OMPDeclareVariantAttr [[ADDR_8:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// CXX-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_8:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // CXX-NEXT: | `-DeclRefExpr [[ADDR_9:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_10:0x[a-z0-9]*]] 'also_after2[implementation={vendor(llvm)}]' 'int ({{.*}})' // CXX-NEXT: |-FunctionDecl [[ADDR_10]] line:16:1 also_after2[implementation={vendor(llvm)}] 'int ({{.*}})' static // CXX-NEXT: | `-CompoundStmt [[ADDR_11:0x[a-z0-9]*]] // CXX-NEXT: | `-ReturnStmt [[ADDR_12:0x[a-z0-9]*]] // CXX-NEXT: | `-IntegerLiteral [[ADDR_13:0x[a-z0-9]*]] 'int' 0 // CXX-NEXT: |-FunctionDecl [[ADDR_14:0x[a-z0-9]*]] col:30 implicit used also_after3 'int ({{.*}}) __attribute__((nothrow))' -// CXX-NEXT: | `-OMPDeclareVariantAttr [[ADDR_15:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// CXX-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_15:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // CXX-NEXT: | `-DeclRefExpr [[ADDR_16:0x[a-z0-9]*]] 'int ({{.*}}) __attribute__((nothrow))' Function [[ADDR_17:0x[a-z0-9]*]] 'also_after3[implementation={vendor(llvm)}]' 'int ({{.*}}) __attribute__((nothrow))' // CXX-NEXT: |-FunctionDecl [[ADDR_17]] line:19:1 also_after3[implementation={vendor(llvm)}] 'int ({{.*}}) __attribute__((nothrow))' // CXX-NEXT: | `-CompoundStmt [[ADDR_18:0x[a-z0-9]*]] // CXX-NEXT: | `-ReturnStmt [[ADDR_19:0x[a-z0-9]*]] // CXX-NEXT: | `-IntegerLiteral [[ADDR_20:0x[a-z0-9]*]] 'int' 0 // CXX-NEXT: |-FunctionDecl [[ADDR_21:0x[a-z0-9]*]] col:69 implicit used constexpr also_after4 'int ({{.*}}) __attribute__((nothrow))' static inline -// CXX-NEXT: | |-AlwaysInlineAttr [[ADDR_22:0x[a-z0-9]*]] always_inline -// CXX-NEXT: | `-OMPDeclareVariantAttr [[ADDR_23:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// CXX-NEXT: | |-attrDetails: AlwaysInlineAttr [[ADDR_22:0x[a-z0-9]*]] always_inline +// CXX-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_23:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // CXX-NEXT: | `-DeclRefExpr [[ADDR_24:0x[a-z0-9]*]] 'int ({{.*}}) __attribute__((nothrow))' Function [[ADDR_25:0x[a-z0-9]*]] 'also_after4[implementation={vendor(llvm)}]' 'int ({{.*}}) __attribute__((nothrow))' // CXX-NEXT: |-FunctionDecl [[ADDR_25]] line:22:1 constexpr also_after4[implementation={vendor(llvm)}] 'int ({{.*}}) __attribute__((nothrow))' static inline // CXX-NEXT: | |-CompoundStmt [[ADDR_26:0x[a-z0-9]*]] // CXX-NEXT: | | `-ReturnStmt [[ADDR_27:0x[a-z0-9]*]] // CXX-NEXT: | | `-IntegerLiteral [[ADDR_28:0x[a-z0-9]*]] 'int' 0 -// CXX-NEXT: | `-AlwaysInlineAttr [[ADDR_29:0x[a-z0-9]*]] always_inline +// CXX-NEXT: | `-attrDetails: AlwaysInlineAttr [[ADDR_29:0x[a-z0-9]*]] always_inline // CXX-NEXT: |-FunctionDecl [[ADDR_30:0x[a-z0-9]*]] line:27:5 invalid also_after1 'int ({{.*}})' // CXX-NEXT: | |-CompoundStmt [[ADDR_31:0x[a-z0-9]*]] // CXX-NEXT: | | `-ReturnStmt [[ADDR_32:0x[a-z0-9]*]] // CXX-NEXT: | | `-IntegerLiteral [[ADDR_33:0x[a-z0-9]*]] 'int' 1 -// CXX-NEXT: | `-OMPDeclareVariantAttr [[ADDR_34:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} +// CXX-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_34:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} // CXX-NEXT: | `-DeclRefExpr [[ADDR_2]] 'int ({{.*}})' Function [[ADDR_3]] 'also_after1[implementation={vendor(llvm)}]' 'int ({{.*}})' // CXX-NEXT: |-FunctionDecl [[ADDR_35:0x[a-z0-9]*]] prev [[ADDR_7]] line:30:5 used also_after2 'int ({{.*}})' // CXX-NEXT: | |-CompoundStmt [[ADDR_36:0x[a-z0-9]*]] // CXX-NEXT: | | `-ReturnStmt [[ADDR_37:0x[a-z0-9]*]] // CXX-NEXT: | | `-IntegerLiteral [[ADDR_38:0x[a-z0-9]*]] 'int' 2 -// CXX-NEXT: | `-OMPDeclareVariantAttr [[ADDR_39:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} +// CXX-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_39:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} // CXX-NEXT: | `-DeclRefExpr [[ADDR_9]] 'int ({{.*}})' Function [[ADDR_10]] 'also_after2[implementation={vendor(llvm)}]' 'int ({{.*}})' // CXX-NEXT: |-FunctionDecl [[ADDR_40:0x[a-z0-9]*]] prev [[ADDR_14]] line:33:5 used also_after3 'int ({{.*}})' // CXX-NEXT: | |-CompoundStmt [[ADDR_41:0x[a-z0-9]*]] // CXX-NEXT: | | `-ReturnStmt [[ADDR_42:0x[a-z0-9]*]] // CXX-NEXT: | | `-IntegerLiteral [[ADDR_43:0x[a-z0-9]*]] 'int' 3 -// CXX-NEXT: | `-OMPDeclareVariantAttr [[ADDR_44:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} +// CXX-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_44:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} // CXX-NEXT: | `-DeclRefExpr [[ADDR_16]] 'int ({{.*}}) __attribute__((nothrow))' Function [[ADDR_17]] 'also_after3[implementation={vendor(llvm)}]' 'int ({{.*}}) __attribute__((nothrow))' // CXX-NEXT: |-FunctionDecl [[ADDR_45:0x[a-z0-9]*]] line:36:5 invalid also_after4 'int ({{.*}})' // CXX-NEXT: | |-CompoundStmt [[ADDR_46:0x[a-z0-9]*]] // CXX-NEXT: | | `-ReturnStmt [[ADDR_47:0x[a-z0-9]*]] // CXX-NEXT: | | `-IntegerLiteral [[ADDR_48:0x[a-z0-9]*]] 'int' 4 -// CXX-NEXT: | |-AlwaysInlineAttr [[ADDR_49:0x[a-z0-9]*]] Inherited always_inline -// CXX-NEXT: | `-OMPDeclareVariantAttr [[ADDR_50:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} +// CXX-NEXT: | |-attrDetails: AlwaysInlineAttr [[ADDR_49:0x[a-z0-9]*]] Inherited always_inline +// CXX-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_50:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} // CXX-NEXT: | `-DeclRefExpr [[ADDR_24]] 'int ({{.*}}) __attribute__((nothrow))' Function [[ADDR_25]] 'also_after4[implementation={vendor(llvm)}]' 'int ({{.*}}) __attribute__((nothrow))' // CXX-NEXT: `-FunctionDecl [[ADDR_51:0x[a-z0-9]*]] line:41:5 main 'int ({{.*}})' // CXX-NEXT: `-CompoundStmt [[ADDR_52:0x[a-z0-9]*]] diff --git a/clang/test/AST/ast-dump-openmp-begin-declare-variant_12.c b/clang/test/AST/ast-dump-openmp-begin-declare-variant_12.c index 55524e052eda4..231f70cdaa965 100644 --- a/clang/test/AST/ast-dump-openmp-begin-declare-variant_12.c +++ b/clang/test/AST/ast-dump-openmp-begin-declare-variant_12.c @@ -63,62 +63,62 @@ int main(void) { // C-NEXT: | |-CompoundStmt [[ADDR_1:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_2:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_3:0x[a-z0-9]*]] 'int' 1 -// C-NEXT: | |-OverloadableAttr [[ADDR_4:0x[a-z0-9]*]] -// C-NEXT: | `-OMPDeclareVariantAttr [[ADDR_5:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// C-NEXT: | |-attrDetails: OverloadableAttr [[ADDR_4:0x[a-z0-9]*]] +// C-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_5:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // C-NEXT: | `-DeclRefExpr [[ADDR_6:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_7:0x[a-z0-9]*]] 'also_before[implementation={vendor(llvm)}]' 'int ({{.*}})' // C-NEXT: |-FunctionDecl [[ADDR_8:0x[a-z0-9]*]] line:16:5 used also_before 'int (int)' // C-NEXT: | |-ParmVarDecl [[ADDR_9:0x[a-z0-9]*]] col:21 i 'int' -// C-NEXT: | |-CompoundStmt [[ADDR_10:0x[a-z0-9]*]] +// C: | |-CompoundStmt [[ADDR_10:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_11:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_12:0x[a-z0-9]*]] 'int' 2 -// C-NEXT: | |-OverloadableAttr [[ADDR_13:0x[a-z0-9]*]] -// C-NEXT: | `-OMPDeclareVariantAttr [[ADDR_14:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// C-NEXT: | |-attrDetails: OverloadableAttr [[ADDR_13:0x[a-z0-9]*]] +// C-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_14:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // C-NEXT: | `-DeclRefExpr [[ADDR_15:0x[a-z0-9]*]] 'int (int)' Function [[ADDR_16:0x[a-z0-9]*]] 'also_before[implementation={vendor(llvm)}]' 'int (int)' // C-NEXT: |-FunctionDecl [[ADDR_17:0x[a-z0-9]*]] line:20:5 used also_before 'int (float)' // C-NEXT: | |-ParmVarDecl [[ADDR_18:0x[a-z0-9]*]] col:23 f 'float' -// C-NEXT: | |-CompoundStmt [[ADDR_19:0x[a-z0-9]*]] +// C: | |-CompoundStmt [[ADDR_19:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_20:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_21:0x[a-z0-9]*]] 'int' 0 -// C-NEXT: | `-OverloadableAttr [[ADDR_22:0x[a-z0-9]*]] +// C-NEXT: | `-attrDetails: OverloadableAttr [[ADDR_22:0x[a-z0-9]*]] // C-NEXT: |-FunctionDecl [[ADDR_23:0x[a-z0-9]*]] line:24:5 used also_before 'int (double)' // C-NEXT: | |-ParmVarDecl [[ADDR_24:0x[a-z0-9]*]] col:24 d 'double' -// C-NEXT: | |-CompoundStmt [[ADDR_25:0x[a-z0-9]*]] +// C: | |-CompoundStmt [[ADDR_25:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_26:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_27:0x[a-z0-9]*]] 'int' 3 -// C-NEXT: | |-OverloadableAttr [[ADDR_28:0x[a-z0-9]*]] -// C-NEXT: | `-OMPDeclareVariantAttr [[ADDR_29:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// C-NEXT: | |-attrDetails: OverloadableAttr [[ADDR_28:0x[a-z0-9]*]] +// C-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_29:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // C-NEXT: | `-DeclRefExpr [[ADDR_30:0x[a-z0-9]*]] 'int (double)' Function [[ADDR_31:0x[a-z0-9]*]] 'also_before[implementation={vendor(llvm)}]' 'int (double)' // C-NEXT: |-FunctionDecl [[ADDR_32:0x[a-z0-9]*]] line:28:5 used also_before 'int (long)' // C-NEXT: | |-ParmVarDecl [[ADDR_33:0x[a-z0-9]*]] col:22 l 'long' -// C-NEXT: | |-CompoundStmt [[ADDR_34:0x[a-z0-9]*]] +// C: | |-CompoundStmt [[ADDR_34:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_35:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_36:0x[a-z0-9]*]] 'int' 4 -// C-NEXT: | |-OverloadableAttr [[ADDR_37:0x[a-z0-9]*]] -// C-NEXT: | `-OMPDeclareVariantAttr [[ADDR_38:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// C-NEXT: | |-attrDetails: OverloadableAttr [[ADDR_37:0x[a-z0-9]*]] +// C-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_38:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // C-NEXT: | `-DeclRefExpr [[ADDR_39:0x[a-z0-9]*]] 'int (long)' Function [[ADDR_40:0x[a-z0-9]*]] 'also_before[implementation={vendor(llvm)}]' 'int (long)' // C-NEXT: |-FunctionDecl [[ADDR_7]] line:8:22 also_before[implementation={vendor(llvm)}] 'int ({{.*}})' // C-NEXT: | |-CompoundStmt [[ADDR_41:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_42:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_43:0x[a-z0-9]*]] 'int' 0 -// C-NEXT: | `-OverloadableAttr [[ADDR_44:0x[a-z0-9]*]] +// C-NEXT: | `-attrDetails: OverloadableAttr [[ADDR_44:0x[a-z0-9]*]] // C-NEXT: |-FunctionDecl [[ADDR_16]] line:8:22 also_before[implementation={vendor(llvm)}] 'int (int)' // C-NEXT: | |-ParmVarDecl [[ADDR_45:0x[a-z0-9]*]] col:21 i 'int' -// C-NEXT: | |-CompoundStmt [[ADDR_46:0x[a-z0-9]*]] +// C: | |-CompoundStmt [[ADDR_46:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_47:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_48:0x[a-z0-9]*]] 'int' 0 -// C-NEXT: | `-OverloadableAttr [[ADDR_49:0x[a-z0-9]*]] +// C-NEXT: | `-attrDetails: OverloadableAttr [[ADDR_49:0x[a-z0-9]*]] // C-NEXT: |-FunctionDecl [[ADDR_31]] line:8:22 also_before[implementation={vendor(llvm)}] 'int (double)' // C-NEXT: | |-ParmVarDecl [[ADDR_50:0x[a-z0-9]*]] col:24 d 'double' -// C-NEXT: | |-CompoundStmt [[ADDR_51:0x[a-z0-9]*]] +// C: | |-CompoundStmt [[ADDR_51:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_52:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_53:0x[a-z0-9]*]] 'int' 0 -// C-NEXT: | `-OverloadableAttr [[ADDR_54:0x[a-z0-9]*]] +// C-NEXT: | `-attrDetails: OverloadableAttr [[ADDR_54:0x[a-z0-9]*]] // C-NEXT: |-FunctionDecl [[ADDR_40]] line:8:22 also_before[implementation={vendor(llvm)}] 'int (long)' // C-NEXT: | |-ParmVarDecl [[ADDR_55:0x[a-z0-9]*]] col:22 l 'long' -// C-NEXT: | |-CompoundStmt [[ADDR_56:0x[a-z0-9]*]] +// C: | |-CompoundStmt [[ADDR_56:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_57:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_58:0x[a-z0-9]*]] 'int' 0 -// C-NEXT: | `-OverloadableAttr [[ADDR_59:0x[a-z0-9]*]] +// C-NEXT: | `-attrDetails: OverloadableAttr [[ADDR_59:0x[a-z0-9]*]] // C-NEXT: `-FunctionDecl [[ADDR_60:0x[a-z0-9]*]] line:53:5 main 'int ({{.*}})' // C-NEXT: `-CompoundStmt [[ADDR_61:0x[a-z0-9]*]] // C-NEXT: `-ReturnStmt [[ADDR_62:0x[a-z0-9]*]] @@ -169,33 +169,33 @@ int main(void) { // CXX-NEXT: | |-CompoundStmt [[ADDR_1:0x[a-z0-9]*]] // CXX-NEXT: | | `-ReturnStmt [[ADDR_2:0x[a-z0-9]*]] // CXX-NEXT: | | `-IntegerLiteral [[ADDR_3:0x[a-z0-9]*]] 'int' 1 -// CXX-NEXT: | `-OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// CXX-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // CXX-NEXT: | `-DeclRefExpr [[ADDR_5:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_6:0x[a-z0-9]*]] 'also_before[implementation={vendor(llvm)}]' 'int ({{.*}})' // CXX-NEXT: |-FunctionDecl [[ADDR_7:0x[a-z0-9]*]] line:16:5 used also_before 'int (int)' // CXX-NEXT: | |-ParmVarDecl [[ADDR_8:0x[a-z0-9]*]] col:21 i 'int' -// CXX-NEXT: | |-CompoundStmt [[ADDR_9:0x[a-z0-9]*]] +// CXX: | |-CompoundStmt [[ADDR_9:0x[a-z0-9]*]] // CXX-NEXT: | | `-ReturnStmt [[ADDR_10:0x[a-z0-9]*]] // CXX-NEXT: | | `-IntegerLiteral [[ADDR_11:0x[a-z0-9]*]] 'int' 2 -// CXX-NEXT: | `-OMPDeclareVariantAttr [[ADDR_12:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// CXX-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_12:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // CXX-NEXT: | `-DeclRefExpr [[ADDR_13:0x[a-z0-9]*]] 'int (int)' Function [[ADDR_14:0x[a-z0-9]*]] 'also_before[implementation={vendor(llvm)}]' 'int (int)' // CXX-NEXT: |-FunctionDecl [[ADDR_15:0x[a-z0-9]*]] line:20:5 used also_before 'int (float)' // CXX-NEXT: | |-ParmVarDecl [[ADDR_16:0x[a-z0-9]*]] col:23 f 'float' -// CXX-NEXT: | `-CompoundStmt [[ADDR_17:0x[a-z0-9]*]] +// CXX: | `-CompoundStmt [[ADDR_17:0x[a-z0-9]*]] // CXX-NEXT: | `-ReturnStmt [[ADDR_18:0x[a-z0-9]*]] // CXX-NEXT: | `-IntegerLiteral [[ADDR_19:0x[a-z0-9]*]] 'int' 0 // CXX-NEXT: |-FunctionDecl [[ADDR_20:0x[a-z0-9]*]] line:24:5 used also_before 'int (double)' // CXX-NEXT: | |-ParmVarDecl [[ADDR_21:0x[a-z0-9]*]] col:24 d 'double' -// CXX-NEXT: | |-CompoundStmt [[ADDR_22:0x[a-z0-9]*]] +// CXX: | |-CompoundStmt [[ADDR_22:0x[a-z0-9]*]] // CXX-NEXT: | | `-ReturnStmt [[ADDR_23:0x[a-z0-9]*]] // CXX-NEXT: | | `-IntegerLiteral [[ADDR_24:0x[a-z0-9]*]] 'int' 3 -// CXX-NEXT: | `-OMPDeclareVariantAttr [[ADDR_25:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// CXX-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_25:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // CXX-NEXT: | `-DeclRefExpr [[ADDR_26:0x[a-z0-9]*]] 'int (double)' Function [[ADDR_27:0x[a-z0-9]*]] 'also_before[implementation={vendor(llvm)}]' 'int (double)' // CXX-NEXT: |-FunctionDecl [[ADDR_28:0x[a-z0-9]*]] line:28:5 used also_before 'int (long)' // CXX-NEXT: | |-ParmVarDecl [[ADDR_29:0x[a-z0-9]*]] col:22 l 'long' -// CXX-NEXT: | |-CompoundStmt [[ADDR_30:0x[a-z0-9]*]] +// CXX: | |-CompoundStmt [[ADDR_30:0x[a-z0-9]*]] // CXX-NEXT: | | `-ReturnStmt [[ADDR_31:0x[a-z0-9]*]] // CXX-NEXT: | | `-IntegerLiteral [[ADDR_32:0x[a-z0-9]*]] 'int' 4 -// CXX-NEXT: | `-OMPDeclareVariantAttr [[ADDR_33:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// CXX-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_33:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // CXX-NEXT: | `-DeclRefExpr [[ADDR_34:0x[a-z0-9]*]] 'int (long)' Function [[ADDR_35:0x[a-z0-9]*]] 'also_before[implementation={vendor(llvm)}]' 'int (long)' // CXX-NEXT: |-FunctionDecl [[ADDR_6]] line:34:1 also_before[implementation={vendor(llvm)}] 'int ({{.*}})' // CXX-NEXT: | `-CompoundStmt [[ADDR_36:0x[a-z0-9]*]] @@ -203,17 +203,17 @@ int main(void) { // CXX-NEXT: | `-IntegerLiteral [[ADDR_38:0x[a-z0-9]*]] 'int' 0 // CXX-NEXT: |-FunctionDecl [[ADDR_14]] line:38:1 also_before[implementation={vendor(llvm)}] 'int (int)' // CXX-NEXT: | |-ParmVarDecl [[ADDR_39:0x[a-z0-9]*]] col:21 i 'int' -// CXX-NEXT: | `-CompoundStmt [[ADDR_40:0x[a-z0-9]*]] +// CXX: | `-CompoundStmt [[ADDR_40:0x[a-z0-9]*]] // CXX-NEXT: | `-ReturnStmt [[ADDR_41:0x[a-z0-9]*]] // CXX-NEXT: | `-IntegerLiteral [[ADDR_42:0x[a-z0-9]*]] 'int' 0 // CXX-NEXT: |-FunctionDecl [[ADDR_27]] line:43:1 also_before[implementation={vendor(llvm)}] 'int (double)' // CXX-NEXT: | |-ParmVarDecl [[ADDR_43:0x[a-z0-9]*]] col:24 d 'double' -// CXX-NEXT: | `-CompoundStmt [[ADDR_44:0x[a-z0-9]*]] +// CXX: | `-CompoundStmt [[ADDR_44:0x[a-z0-9]*]] // CXX-NEXT: | `-ReturnStmt [[ADDR_45:0x[a-z0-9]*]] // CXX-NEXT: | `-IntegerLiteral [[ADDR_46:0x[a-z0-9]*]] 'int' 0 // CXX-NEXT: |-FunctionDecl [[ADDR_35]] line:47:1 also_before[implementation={vendor(llvm)}] 'int (long)' // CXX-NEXT: | |-ParmVarDecl [[ADDR_47:0x[a-z0-9]*]] col:22 l 'long' -// CXX-NEXT: | `-CompoundStmt [[ADDR_48:0x[a-z0-9]*]] +// CXX: | `-CompoundStmt [[ADDR_48:0x[a-z0-9]*]] // CXX-NEXT: | `-ReturnStmt [[ADDR_49:0x[a-z0-9]*]] // CXX-NEXT: | `-IntegerLiteral [[ADDR_50:0x[a-z0-9]*]] 'int' 0 // CXX-NEXT: `-FunctionDecl [[ADDR_51:0x[a-z0-9]*]] line:53:5 main 'int ({{.*}})' diff --git a/clang/test/AST/ast-dump-openmp-begin-declare-variant_13.c b/clang/test/AST/ast-dump-openmp-begin-declare-variant_13.c index a8ffc3826c983..708e76c8f5ff8 100644 --- a/clang/test/AST/ast-dump-openmp-begin-declare-variant_13.c +++ b/clang/test/AST/ast-dump-openmp-begin-declare-variant_13.c @@ -28,10 +28,10 @@ int test(void) { // CHECK-NEXT: | |-CompoundStmt [[ADDR_1:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_2:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_3:0x[a-z0-9]*]] 'int' 1 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit user={condition(1)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit user={condition(1)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_5:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_6:0x[a-z0-9]*]] 'also_before[user={condition(...)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_7:0x[a-z0-9]*]] col:5 implicit used also_after 'int ({{.*}})' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_8:0x[a-z0-9]*]] <> Implicit user={condition(1)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_8:0x[a-z0-9]*]] <> Implicit user={condition(1)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_9:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_10:0x[a-z0-9]*]] 'also_after[user={condition(...)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_10]] line:10:1 also_after[user={condition(...)}] 'int ({{.*}})' // CHECK-NEXT: | `-CompoundStmt [[ADDR_11:0x[a-z0-9]*]] @@ -45,7 +45,7 @@ int test(void) { // CHECK-NEXT: | |-CompoundStmt [[ADDR_18:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_19:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_20:0x[a-z0-9]*]] 'int' 2 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_21:0x[a-z0-9]*]] <> Inherited Implicit user={condition(1)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_21:0x[a-z0-9]*]] <> Inherited Implicit user={condition(1)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_9]] 'int ({{.*}})' {{.*}}Function [[ADDR_10]] 'also_after[user={condition(...)}]' 'int ({{.*}})' // CHECK-NEXT: `-FunctionDecl [[ADDR_22:0x[a-z0-9]*]] line:22:5 test 'int ({{.*}})' // CHECK-NEXT: `-CompoundStmt [[ADDR_23:0x[a-z0-9]*]] diff --git a/clang/test/AST/ast-dump-openmp-begin-declare-variant_2.c b/clang/test/AST/ast-dump-openmp-begin-declare-variant_2.c index e7a30a9d59671..5fa17437908f5 100644 --- a/clang/test/AST/ast-dump-openmp-begin-declare-variant_2.c +++ b/clang/test/AST/ast-dump-openmp-begin-declare-variant_2.c @@ -34,16 +34,16 @@ int test(void) { // - we pick the right callees // CHECK: |-FunctionDecl [[ADDR_0:0x[a-z0-9]*]] <{{.*}}, col:21> col:5 implicit used also_before 'int ({{.*}})' -// CHECK-NEXT: | |-OMPDeclareVariantAttr [[ADDR_1:0x[a-z0-9]*]] <> Implicit device={kind(cpu)} +// CHECK-NEXT: | |-attrDetails: OMPDeclareVariantAttr [[ADDR_1:0x[a-z0-9]*]] <> Implicit device={kind(cpu)} // CHECK-NEXT: | | `-DeclRefExpr [[ADDR_2:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_3:0x[a-z0-9]*]] 'also_before[device={kind(cpu)}]' 'int ({{.*}})' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(0): llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(0): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_5:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_6:0x[a-z0-9]*]] 'also_before[implementation={vendor(llvm)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_3]] line:6:1 also_before[device={kind(cpu)}] 'int ({{.*}})' // CHECK-NEXT: | `-CompoundStmt [[ADDR_7:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_8:0x[a-z0-9]*]] // CHECK-NEXT: | `-IntegerLiteral [[ADDR_9:0x[a-z0-9]*]] 'int' 0 // CHECK-NEXT: |-FunctionDecl [[ADDR_10:0x[a-z0-9]*]] col:5 implicit used also_after 'int ({{.*}})' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_11:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_11:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_12:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_13:0x[a-z0-9]*]] 'also_after[implementation={vendor(llvm)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_13]] line:12:1 also_after[implementation={vendor(llvm)}] 'int ({{.*}})' // CHECK-NEXT: | `-CompoundStmt [[ADDR_14:0x[a-z0-9]*]] @@ -57,7 +57,7 @@ int test(void) { // CHECK-NEXT: | |-CompoundStmt [[ADDR_21:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_22:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_23:0x[a-z0-9]*]] 'int' 2 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_24:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(score(100): llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_24:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(score(100): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_12]] 'int ({{.*}})' Function [[ADDR_13]] 'also_after[implementation={vendor(llvm)}]' 'int ({{.*}})' // CHECK-NEXT: `-FunctionDecl [[ADDR_25:0x[a-z0-9]*]] line:26:5 test 'int ({{.*}})' // CHECK-NEXT: `-CompoundStmt [[ADDR_26:0x[a-z0-9]*]] diff --git a/clang/test/AST/ast-dump-openmp-begin-declare-variant_3.c b/clang/test/AST/ast-dump-openmp-begin-declare-variant_3.c index da78f2b082072..a36e4fc2abc22 100644 --- a/clang/test/AST/ast-dump-openmp-begin-declare-variant_3.c +++ b/clang/test/AST/ast-dump-openmp-begin-declare-variant_3.c @@ -34,16 +34,16 @@ int test(void) { // - we pick the right callees // CHECK: |-FunctionDecl [[ADDR_0:0x[a-z0-9]*]] <{{.*}}, col:21> col:5 implicit used also_before 'int ({{.*}})' -// CHECK-NEXT: | |-OMPDeclareVariantAttr [[ADDR_1:0x[a-z0-9]*]] <> Implicit device={kind(cpu)} +// CHECK-NEXT: | |-attrDetails: OMPDeclareVariantAttr [[ADDR_1:0x[a-z0-9]*]] <> Implicit device={kind(cpu)} // CHECK-NEXT: | | `-DeclRefExpr [[ADDR_2:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_3:0x[a-z0-9]*]] 'also_before[device={kind(cpu)}]' 'int ({{.*}})' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_5:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_6:0x[a-z0-9]*]] 'also_before[implementation={vendor(llvm)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_3]] line:6:1 also_before[device={kind(cpu)}] 'int ({{.*}})' // CHECK-NEXT: | `-CompoundStmt [[ADDR_7:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_8:0x[a-z0-9]*]] // CHECK-NEXT: | `-IntegerLiteral [[ADDR_9:0x[a-z0-9]*]] 'int' 1 // CHECK-NEXT: |-FunctionDecl [[ADDR_10:0x[a-z0-9]*]] col:5 implicit used also_after 'int ({{.*}})' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_11:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(0): llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_11:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(0): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_12:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_13:0x[a-z0-9]*]] 'also_after[implementation={vendor(llvm)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_13]] line:12:1 also_after[implementation={vendor(llvm)}] 'int ({{.*}})' // CHECK-NEXT: | `-CompoundStmt [[ADDR_14:0x[a-z0-9]*]] @@ -57,7 +57,7 @@ int test(void) { // CHECK-NEXT: | |-CompoundStmt [[ADDR_21:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_22:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_23:0x[a-z0-9]*]] 'int' 2 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_24:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(score(0): llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_24:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(score(0): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_12]] 'int ({{.*}})' Function [[ADDR_13]] 'also_after[implementation={vendor(llvm)}]' 'int ({{.*}})' // CHECK-NEXT: `-FunctionDecl [[ADDR_25:0x[a-z0-9]*]] line:26:5 test 'int ({{.*}})' // CHECK-NEXT: `-CompoundStmt [[ADDR_26:0x[a-z0-9]*]] diff --git a/clang/test/AST/ast-dump-openmp-begin-declare-variant_4.c b/clang/test/AST/ast-dump-openmp-begin-declare-variant_4.c index db43c3a25d100..c33fdb3de5482 100644 --- a/clang/test/AST/ast-dump-openmp-begin-declare-variant_4.c +++ b/clang/test/AST/ast-dump-openmp-begin-declare-variant_4.c @@ -22,7 +22,7 @@ int test(void) { // - we pick the right callees // CHECK: |-FunctionDecl [[ADDR_0:0x[a-z0-9]*]] <{{.*}}, col:21> col:5 implicit used also_before 'int ({{.*}})' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_1:0x[a-z0-9]*]] <> Implicit device={kind(cpu)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_1:0x[a-z0-9]*]] <> Implicit device={kind(cpu)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_2:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_3:0x[a-z0-9]*]] 'also_before[device={kind(cpu)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_3]] line:6:1 also_before[device={kind(cpu)}] 'int ({{.*}})' // CHECK-NEXT: | `-CompoundStmt [[ADDR_4:0x[a-z0-9]*]] diff --git a/clang/test/AST/ast-dump-openmp-begin-declare-variant_5.c b/clang/test/AST/ast-dump-openmp-begin-declare-variant_5.c index d8ca6860a04b2..ea67fdba787c6 100644 --- a/clang/test/AST/ast-dump-openmp-begin-declare-variant_5.c +++ b/clang/test/AST/ast-dump-openmp-begin-declare-variant_5.c @@ -35,10 +35,10 @@ int main(void) { // C-NEXT: | |-CompoundStmt [[ADDR_1:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_2:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_3:0x[a-z0-9]*]] 'int' 1 -// C-NEXT: | `-OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// C-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // C-NEXT: | `-DeclRefExpr [[ADDR_5:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_6:0x[a-z0-9]*]] 'also_before[implementation={vendor(llvm)}]' 'int ({{.*}})' // C-NEXT: |-FunctionDecl [[ADDR_7:0x[a-z0-9]*]] col:5 implicit used also_after 'int ({{.*}})' -// C-NEXT: | `-OMPDeclareVariantAttr [[ADDR_8:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// C-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_8:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // C-NEXT: | `-DeclRefExpr [[ADDR_9:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_10:0x[a-z0-9]*]] 'also_after[implementation={vendor(llvm)}]' 'int ({{.*}})' // C-NEXT: |-FunctionDecl [[ADDR_10]] line:10:1 also_after[implementation={vendor(llvm)}] 'int ({{.*}})' // C-NEXT: | `-CompoundStmt [[ADDR_11:0x[a-z0-9]*]] @@ -52,7 +52,7 @@ int main(void) { // C-NEXT: | |-CompoundStmt [[ADDR_18:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_19:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_20:0x[a-z0-9]*]] 'int' 2 -// C-NEXT: | `-OMPDeclareVariantAttr [[ADDR_21:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} +// C-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_21:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} // C-NEXT: | `-DeclRefExpr [[ADDR_9]] 'int ({{.*}})' Function [[ADDR_10]] 'also_after[implementation={vendor(llvm)}]' 'int ({{.*}})' // C-NEXT: `-FunctionDecl [[ADDR_22:0x[a-z0-9]*]] line:22:5 main 'int ({{.*}})' // C-NEXT: `-CompoundStmt [[ADDR_23:0x[a-z0-9]*]] @@ -97,10 +97,10 @@ int main(void) { // CXX-NEXT: | |-CompoundStmt [[ADDR_1:0x[a-z0-9]*]] // CXX-NEXT: | | `-ReturnStmt [[ADDR_2:0x[a-z0-9]*]] // CXX-NEXT: | | `-IntegerLiteral [[ADDR_3:0x[a-z0-9]*]] 'int' 1 -// CXX-NEXT: | `-OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// CXX-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // CXX-NEXT: | `-DeclRefExpr [[ADDR_5:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_6:0x[a-z0-9]*]] 'also_before[implementation={vendor(llvm)}]' 'int ({{.*}})' // CXX-NEXT: |-FunctionDecl [[ADDR_7:0x[a-z0-9]*]] col:5 implicit used also_after 'int ({{.*}})' -// CXX-NEXT: | `-OMPDeclareVariantAttr [[ADDR_8:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// CXX-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_8:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // CXX-NEXT: | `-DeclRefExpr [[ADDR_9:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_10:0x[a-z0-9]*]] 'also_after[implementation={vendor(llvm)}]' 'int ({{.*}})' // CXX-NEXT: |-FunctionDecl [[ADDR_10]] line:10:1 also_after[implementation={vendor(llvm)}] 'int ({{.*}})' // CXX-NEXT: | `-CompoundStmt [[ADDR_11:0x[a-z0-9]*]] @@ -114,7 +114,7 @@ int main(void) { // CXX-NEXT: | |-CompoundStmt [[ADDR_18:0x[a-z0-9]*]] // CXX-NEXT: | | `-ReturnStmt [[ADDR_19:0x[a-z0-9]*]] // CXX-NEXT: | | `-IntegerLiteral [[ADDR_20:0x[a-z0-9]*]] 'int' 2 -// CXX-NEXT: | `-OMPDeclareVariantAttr [[ADDR_21:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} +// CXX-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_21:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} // CXX-NEXT: | `-DeclRefExpr [[ADDR_9]] 'int ({{.*}})' Function [[ADDR_10]] 'also_after[implementation={vendor(llvm)}]' 'int ({{.*}})' // CXX-NEXT: `-FunctionDecl [[ADDR_22:0x[a-z0-9]*]] line:22:5 main 'int ({{.*}})' // CXX-NEXT: `-CompoundStmt [[ADDR_23:0x[a-z0-9]*]] diff --git a/clang/test/AST/ast-dump-openmp-begin-declare-variant_6.c b/clang/test/AST/ast-dump-openmp-begin-declare-variant_6.c index b124a6713b052..4b0b47bcb1fd7 100644 --- a/clang/test/AST/ast-dump-openmp-begin-declare-variant_6.c +++ b/clang/test/AST/ast-dump-openmp-begin-declare-variant_6.c @@ -28,21 +28,34 @@ int main(void) { // - we see the specialization in the AST // - we do use the original pointers for the calls as the variants are not applicable (this is not the ibm compiler). -// CHECK: |-FunctionDecl [[ADDR_0:0x[a-z0-9]*]] <{{.*}}, line:7:1> line:5:5 used also_before 'int ({{.*}})' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_1:0x[a-z0-9]*]] -// CHECK-NEXT: | `-ReturnStmt [[ADDR_2:0x[a-z0-9]*]] -// CHECK-NEXT: | `-IntegerLiteral [[ADDR_3:0x[a-z0-9]*]] 'int' 0 -// CHECK-NEXT: |-FunctionDecl [[ADDR_17:0x[a-z0-9]*]] line:18:5 used also_after 'int ({{.*}})' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_18:0x[a-z0-9]*]] -// CHECK-NEXT: | `-ReturnStmt [[ADDR_19:0x[a-z0-9]*]] -// CHECK-NEXT: | `-IntegerLiteral [[ADDR_20:0x[a-z0-9]*]] 'int' 0 -// CHECK-NEXT: `-FunctionDecl [[ADDR_22:0x[a-z0-9]*]] line:22:5 main 'int ({{.*}})' -// CHECK-NEXT: `-CompoundStmt [[ADDR_23:0x[a-z0-9]*]] -// CHECK-NEXT: `-ReturnStmt [[ADDR_24:0x[a-z0-9]*]] -// CHECK-NEXT: `-BinaryOperator [[ADDR_25:0x[a-z0-9]*]] 'int' '+' -// CHECK-NEXT: |-CallExpr [[ADDR_26:0x[a-z0-9]*]] 'int' -// CHECK-NEXT: | `-ImplicitCastExpr [[ADDR_27:0x[a-z0-9]*]] 'int (*)({{.*}})' -// CHECK-NEXT: | `-DeclRefExpr [[ADDR_28:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_17]] 'also_after' 'int ({{.*}})' -// CHECK-NEXT: `-CallExpr [[ADDR_29:0x[a-z0-9]*]] 'int' -// CHECK-NEXT: `-ImplicitCastExpr [[ADDR_30:0x[a-z0-9]*]] 'int (*)({{.*}})' -// CHECK-NEXT: `-DeclRefExpr [[ADDR_31:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_0]] 'also_before' 'int ({{.*}})' +// CHECK: TranslationUnitDecl {{.*}} <> +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __int128_t '__int128' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} '__int128' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __uint128_t 'unsigned __int128' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'unsigned __int128' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __NSConstantString +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} +// CHECK: |-TypedefDecl {{.*}} <> implicit __builtin_ms_va_list 'char *' +// CHECK-NEXT: | `-typeDetails: PointerType {{.*}} 'char *' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'char' +// CHECK-NEXT: |-TypedefDecl {{.*}} +// CHECK-NEXT: | `-typeDetails: ConstantArrayType {{.*}} +// CHECK: | `-typeDetails: RecordType {{.*}} +// CHECK: |-FunctionDecl {{.*}} +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-ReturnStmt {{.*}} +// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: |-FunctionDecl {{.*}} +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-ReturnStmt {{.*}} +// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: `-FunctionDecl {{.*}} +// CHECK-NEXT: `-CompoundStmt {{.*}} +// CHECK-NEXT: `-ReturnStmt {{.*}} +// CHECK-NEXT: `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: |-CallExpr {{.*}} 'int' +// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} +// CHECK-NEXT: | `-DeclRefExpr {{.*}} +// CHECK-NEXT: `-CallExpr {{.*}} 'int' +// CHECK-NEXT: `-ImplicitCastExpr {{.*}} +// CHECK-NEXT: `-DeclRefExpr {{.*}} diff --git a/clang/test/AST/ast-dump-openmp-begin-declare-variant_7.c b/clang/test/AST/ast-dump-openmp-begin-declare-variant_7.c index 5322d123b5ac5..1c206acf1fe9d 100644 --- a/clang/test/AST/ast-dump-openmp-begin-declare-variant_7.c +++ b/clang/test/AST/ast-dump-openmp-begin-declare-variant_7.c @@ -39,7 +39,7 @@ int test(void) { // C-NEXT: |-BinaryOperator [[ADDR_34:0x[a-z0-9]*]] 'int' '+' // CXX: `-BinaryOperator [[ADDR_33:0x[a-z0-9]*]] '' contains-errors '+' // CXX-NEXT: |-BinaryOperator [[ADDR_34:0x[a-z0-9]*]] '' contains-errors '+' -// CHECK-NEXT: | |-CallExpr [[ADDR_35:0x[a-z0-9]*]] 'int' +// CHECK: | |-CallExpr [[ADDR_35:0x[a-z0-9]*]] 'int' // CHECK-NEXT: | | `-ImplicitCastExpr [[ADDR_36:0x[a-z0-9]*]] 'int (*)({{.*}})' // CHECK-NEXT: | | `-DeclRefExpr [[ADDR_37:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_0]] 'OK_1' 'int ({{.*}})' // C: | `-CallExpr [[ADDR_38:0x[a-z0-9]*]] 'int' @@ -47,6 +47,6 @@ int test(void) { // C-NEXT: | `-DeclRefExpr [[ADDR_40:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function {{.*}} 'not_OK' 'int ({{.*}})' // CXX: | `-RecoveryExpr {{.*}} '' contains-errors lvalue // CXX-NEXT: | `-UnresolvedLookupExpr {{.*}} '' lvalue (ADL) = 'not_OK' empty -// CHECK-NEXT: `-CallExpr [[ADDR_41:0x[a-z0-9]*]] 'int' +// CHECK: `-CallExpr [[ADDR_41:0x[a-z0-9]*]] 'int' // CHECK-NEXT: `-ImplicitCastExpr [[ADDR_42:0x[a-z0-9]*]] 'int (*)({{.*}})' // CHECK-NEXT: `-DeclRefExpr [[ADDR_43:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_28]] 'OK_3' 'int ({{.*}})' diff --git a/clang/test/AST/ast-dump-openmp-begin-declare-variant_8.c b/clang/test/AST/ast-dump-openmp-begin-declare-variant_8.c index da78f2b082072..a36e4fc2abc22 100644 --- a/clang/test/AST/ast-dump-openmp-begin-declare-variant_8.c +++ b/clang/test/AST/ast-dump-openmp-begin-declare-variant_8.c @@ -34,16 +34,16 @@ int test(void) { // - we pick the right callees // CHECK: |-FunctionDecl [[ADDR_0:0x[a-z0-9]*]] <{{.*}}, col:21> col:5 implicit used also_before 'int ({{.*}})' -// CHECK-NEXT: | |-OMPDeclareVariantAttr [[ADDR_1:0x[a-z0-9]*]] <> Implicit device={kind(cpu)} +// CHECK-NEXT: | |-attrDetails: OMPDeclareVariantAttr [[ADDR_1:0x[a-z0-9]*]] <> Implicit device={kind(cpu)} // CHECK-NEXT: | | `-DeclRefExpr [[ADDR_2:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_3:0x[a-z0-9]*]] 'also_before[device={kind(cpu)}]' 'int ({{.*}})' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_5:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_6:0x[a-z0-9]*]] 'also_before[implementation={vendor(llvm)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_3]] line:6:1 also_before[device={kind(cpu)}] 'int ({{.*}})' // CHECK-NEXT: | `-CompoundStmt [[ADDR_7:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_8:0x[a-z0-9]*]] // CHECK-NEXT: | `-IntegerLiteral [[ADDR_9:0x[a-z0-9]*]] 'int' 1 // CHECK-NEXT: |-FunctionDecl [[ADDR_10:0x[a-z0-9]*]] col:5 implicit used also_after 'int ({{.*}})' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_11:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(0): llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_11:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(0): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_12:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_13:0x[a-z0-9]*]] 'also_after[implementation={vendor(llvm)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_13]] line:12:1 also_after[implementation={vendor(llvm)}] 'int ({{.*}})' // CHECK-NEXT: | `-CompoundStmt [[ADDR_14:0x[a-z0-9]*]] @@ -57,7 +57,7 @@ int test(void) { // CHECK-NEXT: | |-CompoundStmt [[ADDR_21:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_22:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_23:0x[a-z0-9]*]] 'int' 2 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_24:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(score(0): llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_24:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(score(0): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_12]] 'int ({{.*}})' Function [[ADDR_13]] 'also_after[implementation={vendor(llvm)}]' 'int ({{.*}})' // CHECK-NEXT: `-FunctionDecl [[ADDR_25:0x[a-z0-9]*]] line:26:5 test 'int ({{.*}})' // CHECK-NEXT: `-CompoundStmt [[ADDR_26:0x[a-z0-9]*]] diff --git a/clang/test/AST/ast-dump-openmp-begin-declare-variant_9.c b/clang/test/AST/ast-dump-openmp-begin-declare-variant_9.c index 02f73538a9782..616ae5f363695 100644 --- a/clang/test/AST/ast-dump-openmp-begin-declare-variant_9.c +++ b/clang/test/AST/ast-dump-openmp-begin-declare-variant_9.c @@ -39,10 +39,10 @@ int main(void) { // C-NEXT: | |-CompoundStmt [[ADDR_1:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_2:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_3:0x[a-z0-9]*]] 'int' 0 -// C-NEXT: | `-OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// C-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // C-NEXT: | `-DeclRefExpr [[ADDR_5:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_6:0x[a-z0-9]*]] 'also_before[implementation={vendor(llvm)}]' 'int ({{.*}})' // C-NEXT: |-FunctionDecl [[ADDR_7:0x[a-z0-9]*]] col:5 implicit used also_after 'int ({{.*}})' -// C-NEXT: | `-OMPDeclareVariantAttr [[ADDR_8:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// C-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_8:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // C-NEXT: | `-DeclRefExpr [[ADDR_9:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_10:0x[a-z0-9]*]] 'also_after[implementation={vendor(llvm)}]' 'int ({{.*}})' // C-NEXT: |-FunctionDecl [[ADDR_10]] line:10:1 also_after[implementation={vendor(llvm)}] 'int ({{.*}})' // C-NEXT: | `-CompoundStmt [[ADDR_11:0x[a-z0-9]*]] @@ -56,19 +56,19 @@ int main(void) { // C-NEXT: | |-CompoundStmt [[ADDR_18:0x[a-z0-9]*]] // C-NEXT: | | `-ReturnStmt [[ADDR_19:0x[a-z0-9]*]] // C-NEXT: | | `-IntegerLiteral [[ADDR_20:0x[a-z0-9]*]] 'int' 0 -// C-NEXT: | `-OMPDeclareVariantAttr [[ADDR_21:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} +// C-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_21:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} // C-NEXT: | `-DeclRefExpr [[ADDR_9]] 'int ({{.*}})' Function [[ADDR_10]] 'also_after[implementation={vendor(llvm)}]' 'int ({{.*}})' // C-NEXT: |-FunctionDecl [[ADDR_22:0x[a-z0-9]*]] col:6 used foo 'void ({{.*}})' // C-NEXT: |-TypedefDecl [[ADDR_23:0x[a-z0-9]*]] col:14 referenced fd 'int (*)({{.*}})' -// C-NEXT: | `-PointerType [[ADDR_24:0x[a-z0-9]*]] 'int (*)({{.*}})' -// C-NEXT: | `-ParenType [[ADDR_25:0x[a-z0-9]*]] 'int ({{.*}})' sugar -// C-NEXT: | `-FunctionProtoType [[ADDR_26:0x[a-z0-9]*]] 'int ({{.*}})' cdecl -// C-NEXT: | `-BuiltinType [[ADDR_27:0x[a-z0-9]*]] 'int' +// C-NEXT: | `-typeDetails: PointerType [[ADDR_24:0x[a-z0-9]*]] 'int (*)({{.*}})' +// C-NEXT: | `-typeDetails: ParenType [[ADDR_25:0x[a-z0-9]*]] 'int ({{.*}})' sugar +// C-NEXT: | `-typeDetails: FunctionProtoType [[ADDR_26:0x[a-z0-9]*]] 'int ({{.*}})' cdecl +// C: | `-functionDetails: cdeclReturnType [[ADDR_27:0x[a-z0-9]*]] 'int' // C-NEXT: `-FunctionDecl [[ADDR_28:0x[a-z0-9]*]] line:24:5 main 'int ({{.*}})' // C-NEXT: `-CompoundStmt [[ADDR_29:0x[a-z0-9]*]] // C-NEXT: |-DeclStmt [[ADDR_30:0x[a-z0-9]*]] // C-NEXT: | `-VarDecl [[ADDR_31:0x[a-z0-9]*]] col:6 used fns 'fd[2]' -// C-NEXT: |-BinaryOperator [[ADDR_32:0x[a-z0-9]*]] 'fd':'int (*)({{.*}})' '=' +// C: |-BinaryOperator [[ADDR_32:0x[a-z0-9]*]] 'fd':'int (*)({{.*}})' '=' // C-NEXT: | |-ArraySubscriptExpr [[ADDR_33:0x[a-z0-9]*]] 'fd':'int (*)({{.*}})' lvalue // C-NEXT: | | |-ImplicitCastExpr [[ADDR_34:0x[a-z0-9]*]] 'fd *' // C-NEXT: | | | `-DeclRefExpr [[ADDR_35:0x[a-z0-9]*]] 'fd[2]' {{.*}}Var [[ADDR_31]] 'fns' 'fd[2]' @@ -112,10 +112,10 @@ int main(void) { // CXX-NEXT: | |-CompoundStmt [[ADDR_1:0x[a-z0-9]*]] // CXX-NEXT: | | `-ReturnStmt [[ADDR_2:0x[a-z0-9]*]] // CXX-NEXT: | | `-IntegerLiteral [[ADDR_3:0x[a-z0-9]*]] 'int' 0 -// CXX-NEXT: | `-OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// CXX-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // CXX-NEXT: | `-DeclRefExpr [[ADDR_5:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_6:0x[a-z0-9]*]] 'also_before[implementation={vendor(llvm)}]' 'int ({{.*}})' // CXX-NEXT: |-FunctionDecl [[ADDR_7:0x[a-z0-9]*]] col:5 implicit used also_after 'int ({{.*}})' -// CXX-NEXT: | `-OMPDeclareVariantAttr [[ADDR_8:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// CXX-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_8:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // CXX-NEXT: | `-DeclRefExpr [[ADDR_9:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_10:0x[a-z0-9]*]] 'also_after[implementation={vendor(llvm)}]' 'int ({{.*}})' // CXX-NEXT: |-FunctionDecl [[ADDR_10]] line:10:1 also_after[implementation={vendor(llvm)}] 'int ({{.*}})' // CXX-NEXT: | `-CompoundStmt [[ADDR_11:0x[a-z0-9]*]] @@ -129,19 +129,19 @@ int main(void) { // CXX-NEXT: | |-CompoundStmt [[ADDR_18:0x[a-z0-9]*]] // CXX-NEXT: | | `-ReturnStmt [[ADDR_19:0x[a-z0-9]*]] // CXX-NEXT: | | `-IntegerLiteral [[ADDR_20:0x[a-z0-9]*]] 'int' 0 -// CXX-NEXT: | `-OMPDeclareVariantAttr [[ADDR_21:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} +// CXX-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_21:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} // CXX-NEXT: | `-DeclRefExpr [[ADDR_9]] 'int ({{.*}})' Function [[ADDR_10]] 'also_after[implementation={vendor(llvm)}]' 'int ({{.*}})' // CXX-NEXT: |-FunctionDecl [[ADDR_22:0x[a-z0-9]*]] col:6 used foo 'void ({{.*}})' // CXX-NEXT: |-TypedefDecl [[ADDR_23:0x[a-z0-9]*]] col:14 referenced fd 'int (*)({{.*}})' -// CXX-NEXT: | `-PointerType [[ADDR_24:0x[a-z0-9]*]] 'int (*)({{.*}})' -// CXX-NEXT: | `-ParenType [[ADDR_25:0x[a-z0-9]*]] 'int ({{.*}})' sugar -// CXX-NEXT: | `-FunctionProtoType [[ADDR_26:0x[a-z0-9]*]] 'int ({{.*}})' cdecl -// CXX-NEXT: | `-BuiltinType [[ADDR_27:0x[a-z0-9]*]] 'int' +// CXX-NEXT: | `-typeDetails: PointerType [[ADDR_24:0x[a-z0-9]*]] 'int (*)({{.*}})' +// CXX-NEXT: | `-typeDetails: ParenType [[ADDR_25:0x[a-z0-9]*]] 'int ({{.*}})' sugar +// CXX-NEXT: | `-typeDetails: FunctionProtoType [[ADDR_26:0x[a-z0-9]*]] 'int ({{.*}})' cdecl +// CXX: | `-functionDetails: cdeclReturnType [[ADDR_27:0x[a-z0-9]*]] 'int' // CXX-NEXT: `-FunctionDecl [[ADDR_28:0x[a-z0-9]*]] line:24:5 main 'int ({{.*}})' // CXX-NEXT: `-CompoundStmt [[ADDR_29:0x[a-z0-9]*]] // CXX-NEXT: |-DeclStmt [[ADDR_30:0x[a-z0-9]*]] // CXX-NEXT: | `-VarDecl [[ADDR_31:0x[a-z0-9]*]] col:6 used fns 'fd[2]' -// CXX-NEXT: |-BinaryOperator [[ADDR_32:0x[a-z0-9]*]] 'fd':'int (*)({{.*}})' {{.*}}'=' +// CXX: |-BinaryOperator [[ADDR_32:0x[a-z0-9]*]] 'fd':'int (*)({{.*}})' {{.*}}'=' // CXX-NEXT: | |-ArraySubscriptExpr [[ADDR_33:0x[a-z0-9]*]] 'fd':'int (*)({{.*}})' lvalue // CXX-NEXT: | | |-ImplicitCastExpr [[ADDR_34:0x[a-z0-9]*]] 'fd *' // CXX-NEXT: | | | `-DeclRefExpr [[ADDR_35:0x[a-z0-9]*]] 'fd[2]' {{.*}}Var [[ADDR_31]] 'fns' 'fd[2]' diff --git a/clang/test/AST/ast-dump-openmp-begin-declare-variant_addr_1.c b/clang/test/AST/ast-dump-openmp-begin-declare-variant_addr_1.c index 0b082007ba80b..55a887827c512 100644 --- a/clang/test/AST/ast-dump-openmp-begin-declare-variant_addr_1.c +++ b/clang/test/AST/ast-dump-openmp-begin-declare-variant_addr_1.c @@ -38,10 +38,10 @@ int main(void) { // CHECK-NEXT: | |-CompoundStmt [[ADDR_1:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_2:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_3:0x[a-z0-9]*]] 'int' 0 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_5:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_6:0x[a-z0-9]*]] 'also_before[implementation={vendor(llvm)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_7:0x[a-z0-9]*]] col:5 implicit used also_after 'int ({{.*}})' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_8:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_8:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_9:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_10:0x[a-z0-9]*]] 'also_after[implementation={vendor(llvm)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_10]] line:10:1 also_after[implementation={vendor(llvm)}] 'int ({{.*}})' // CHECK-NEXT: | `-CompoundStmt [[ADDR_11:0x[a-z0-9]*]] @@ -55,11 +55,11 @@ int main(void) { // CHECK-NEXT: | |-CompoundStmt [[ADDR_18:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_19:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_20:0x[a-z0-9]*]] 'int' 0 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_21:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_21:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_9]] 'int ({{.*}})' Function [[ADDR_10]] 'also_after[implementation={vendor(llvm)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_22:0x[a-z0-9]*]] line:22:5 used test 'int (int (*)({{.*}}))' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_23:0x[a-z0-9]*]] col:16 used fd 'int (*)({{.*}})' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_24:0x[a-z0-9]*]] +// CHECK: | `-CompoundStmt [[ADDR_24:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_25:0x[a-z0-9]*]] // CHECK-NEXT: | `-CallExpr [[ADDR_26:0x[a-z0-9]*]] 'int' // CHECK-NEXT: | `-ImplicitCastExpr [[ADDR_27:0x[a-z0-9]*]] 'int (*)({{.*}})' diff --git a/clang/test/AST/ast-dump-openmp-begin-declare-variant_namespace_1.cpp b/clang/test/AST/ast-dump-openmp-begin-declare-variant_namespace_1.cpp index 99e02adb6b4de..62d574b8e7ba9 100644 --- a/clang/test/AST/ast-dump-openmp-begin-declare-variant_namespace_1.cpp +++ b/clang/test/AST/ast-dump-openmp-begin-declare-variant_namespace_1.cpp @@ -73,19 +73,19 @@ int main() { // CHECK-NEXT: | |-CompoundStmt [[ADDR_7:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_8:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_9:0x[a-z0-9]*]] 'int' 1 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_10:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_10:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_11:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_12:0x[a-z0-9]*]] 'bar[implementation={vendor(llvm)}]' 'int ({{.*}})' // CHECK-NEXT: |-NamespaceDecl [[ADDR_13:0x[a-z0-9]*]] line:15:11 C // CHECK-NEXT: | `-FunctionDecl [[ADDR_14:0x[a-z0-9]*]] line:16:5 used baz 'int ({{.*}})' // CHECK-NEXT: | |-CompoundStmt [[ADDR_15:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_16:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_17:0x[a-z0-9]*]] 'int' 2 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_18:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_18:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_19:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_20:0x[a-z0-9]*]] 'baz[implementation={vendor(llvm)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_21:0x[a-z0-9]*]] col:5 implicit foo 'int ({{.*}})' -// CHECK-NEXT: | |-OMPDeclareVariantAttr [[ADDR_22:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// CHECK-NEXT: | |-attrDetails: OMPDeclareVariantAttr [[ADDR_22:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // CHECK-NEXT: | | `-DeclRefExpr [[ADDR_23:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_24:0x[a-z0-9]*]] 'foo[implementation={vendor(llvm)}]' 'int ({{.*}})' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_25:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_25:0x[a-z0-9]*]] <> Implicit implementation={vendor(llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_26:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_27:0x[a-z0-9]*]] 'foo[implementation={vendor(llvm)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_24]] line:24:1 foo[implementation={vendor(llvm)}] 'int ({{.*}})' // CHECK-NEXT: | `-CompoundStmt [[ADDR_28:0x[a-z0-9]*]] diff --git a/clang/test/AST/ast-dump-openmp-begin-declare-variant_nested.c b/clang/test/AST/ast-dump-openmp-begin-declare-variant_nested.c index 11bd51e7443bc..0d0a362dc99e6 100644 --- a/clang/test/AST/ast-dump-openmp-begin-declare-variant_nested.c +++ b/clang/test/AST/ast-dump-openmp-begin-declare-variant_nested.c @@ -42,10 +42,10 @@ int non_equivalent_isa_trait(void); // CHECK-NEXT: | |-CompoundStmt [[ADDR_1:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_2:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_3:0x[a-z0-9]*]] 'int' 1 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit device={kind(any, cpu)}, implementation={dynamic_allocators, vendor(llvm, pgi), extension(match_any)}, user={condition(1)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit device={kind(any, cpu)}, implementation={dynamic_allocators, vendor(llvm, pgi), extension(match_any)}, user={condition(1)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_5:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_6:0x[a-z0-9]*]] 'also_before[device={kind(any, cpu)}, implementation={dynamic_allocators, vendor(llvm, pgi), extension(match_any)}, user={condition(...)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_7:0x[a-z0-9]*]] col:5 implicit used also_after 'int ({{.*}})' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_8:0x[a-z0-9]*]] <> Implicit device={kind(any, cpu)}, implementation={dynamic_allocators, vendor(llvm, pgi), extension(match_any)}, user={condition(1)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_8:0x[a-z0-9]*]] <> Implicit device={kind(any, cpu)}, implementation={dynamic_allocators, vendor(llvm, pgi), extension(match_any)}, user={condition(1)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_9:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_10:0x[a-z0-9]*]] 'also_after[device={kind(any, cpu)}, implementation={dynamic_allocators, vendor(llvm, pgi), extension(match_any)}, user={condition(...)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_10]] line:12:1 also_after[device={kind(any, cpu)}, implementation={dynamic_allocators, vendor(llvm, pgi), extension(match_any)}, user={condition(...)}] 'int ({{.*}})' // CHECK-NEXT: | `-CompoundStmt [[ADDR_11:0x[a-z0-9]*]] @@ -59,7 +59,7 @@ int non_equivalent_isa_trait(void); // CHECK-NEXT: | |-CompoundStmt [[ADDR_18:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_19:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_20:0x[a-z0-9]*]] 'int' 2 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_21:0x[a-z0-9]*]] <> Inherited Implicit device={kind(any, cpu)}, implementation={dynamic_allocators, vendor(llvm, pgi), extension(match_any)}, user={condition(1)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_21:0x[a-z0-9]*]] <> Inherited Implicit device={kind(any, cpu)}, implementation={dynamic_allocators, vendor(llvm, pgi), extension(match_any)}, user={condition(1)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_9]] 'int ({{.*}})' {{.*}}Function [[ADDR_10]] 'also_after[device={kind(any, cpu)}, implementation={dynamic_allocators, vendor(llvm, pgi), extension(match_any)}, user={condition(...)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_22:0x[a-z0-9]*]] line:26:5 referenced test 'int ({{.*}})' // CHECK-NEXT: | `-CompoundStmt [[ADDR_23:0x[a-z0-9]*]] @@ -80,8 +80,8 @@ int non_equivalent_isa_trait(void); // CHECK-NEXT: | `-ImplicitCastExpr [[ADDR_37:0x[a-z0-9]*]] 'int (*)({{.*}})' // CHECK-NEXT: | `-DeclRefExpr [[ADDR_5]] 'int ({{.*}})' {{.*}}Function [[ADDR_6]] 'also_before[device={kind(any, cpu)}, implementation={dynamic_allocators, vendor(llvm, pgi), extension(match_any)}, user={condition(...)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_38:0x[a-z0-9]*]] col:5 equivalent_isa_trait 'int ({{.*}})' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_39:0x[a-z0-9]*]] Implicit device={isa(sse)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_39:0x[a-z0-9]*]] Implicit device={isa(sse)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_40:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_22]] 'test' 'int ({{.*}})' non_odr_use_unevaluated // CHECK-NEXT: `-FunctionDecl [[ADDR_41:0x[a-z0-9]*]] col:5 non_equivalent_isa_trait 'int ({{.*}})' -// CHECK-NEXT: `-OMPDeclareVariantAttr [[ADDR_42:0x[a-z0-9]*]] Implicit device={isa(sse2, sse)} +// CHECK-NEXT: `-attrDetails: OMPDeclareVariantAttr [[ADDR_42:0x[a-z0-9]*]] Implicit device={isa(sse2, sse)} // CHECK-NEXT: `-DeclRefExpr [[ADDR_43:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_22]] 'test' 'int ({{.*}})' non_odr_use_unevaluated diff --git a/clang/test/AST/ast-dump-openmp-begin-declare-variant_reference.cpp b/clang/test/AST/ast-dump-openmp-begin-declare-variant_reference.cpp index 1937a5d1c3eb3..9b4d594b9a1c5 100644 --- a/clang/test/AST/ast-dump-openmp-begin-declare-variant_reference.cpp +++ b/clang/test/AST/ast-dump-openmp-begin-declare-variant_reference.cpp @@ -107,7 +107,7 @@ int test(float &&f, short &&s) { // CHECK-NEXT: | | | `-Destructor simple irrelevant trivial needs_implicit // CHECK-NEXT: | | |-CXXRecordDecl [[ADDR_3:0x[a-z0-9]*]] col:29 implicit struct remove_reference // CHECK-NEXT: | | `-TypedefDecl [[ADDR_4:0x[a-z0-9]*]] col:60 type '_Tp' -// CHECK-NEXT: | | `-TemplateTypeParmType [[ADDR_5:0x[a-z0-9]*]] '_Tp' dependent depth 0 index 0 +// CHECK-NEXT: | | `-typeDetails: TemplateTypeParmType [[ADDR_5:0x[a-z0-9]*]] '_Tp' dependent depth 0 index 0 // CHECK-NEXT: | | `-TemplateTypeParm [[ADDR_1]] '_Tp' // CHECK-NEXT: | |-ClassTemplateSpecializationDecl [[ADDR_6:0x[a-z0-9]*]] col:29 struct remove_reference definition // CHECK-NEXT: | | |-DefinitionData pass_in_registers empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init @@ -118,13 +118,13 @@ int test(float &&f, short &&s) { // CHECK-NEXT: | | | |-MoveAssignment exists simple trivial needs_implicit // CHECK-NEXT: | | | `-Destructor simple irrelevant trivial needs_implicit // CHECK-NEXT: | | |-TemplateArgument type 'float &' -// CHECK-NEXT: | | | `-LValueReferenceType [[ADDR_7:0x[a-z0-9]*]] 'float &' -// CHECK-NEXT: | | | `-BuiltinType [[ADDR_8:0x[a-z0-9]*]] 'float' +// CHECK-NEXT: | | | `-typeDetails: LValueReferenceType [[ADDR_7:0x[a-z0-9]*]] 'float &' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType [[ADDR_8:0x[a-z0-9]*]] 'float' // CHECK-NEXT: | | |-CXXRecordDecl [[ADDR_9:0x[a-z0-9]*]] col:29 implicit struct remove_reference // CHECK-NEXT: | | `-TypedefDecl [[ADDR_10:0x[a-z0-9]*]] col:67 referenced type 'float' -// CHECK-NEXT: | | `-SubstTemplateTypeParmType [[ADDR_11:0x[a-z0-9]*]] 'float' sugar class depth 0 index 0 _Tp +// CHECK-NEXT: | | `-typeDetails: SubstTemplateTypeParmType [[ADDR_11:0x[a-z0-9]*]] 'float' sugar class depth 0 index 0 _Tp // CHECK-NEXT: | | |-ClassTemplateSpecialization [[ADDR_6]] 'remove_reference' -// CHECK-NEXT: | | `-BuiltinType [[ADDR_8]] 'float' +// CHECK-NEXT: | | `-typeDetails: BuiltinType [[ADDR_8]] 'float' // CHECK-NEXT: | `-ClassTemplateSpecializationDecl [[ADDR_14:0x[a-z0-9]*]] col:29 struct remove_reference definition // CHECK-NEXT: | |-DefinitionData pass_in_registers empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init // CHECK-NEXT: | | |-DefaultConstructor exists trivial constexpr needs_implicit defaulted_is_constexpr @@ -134,13 +134,13 @@ int test(float &&f, short &&s) { // CHECK-NEXT: | | |-MoveAssignment exists simple trivial needs_implicit // CHECK-NEXT: | | `-Destructor simple irrelevant trivial needs_implicit // CHECK-NEXT: | |-TemplateArgument type 'short &' -// CHECK-NEXT: | | `-LValueReferenceType [[ADDR_15:0x[a-z0-9]*]] 'short &' -// CHECK-NEXT: | | `-BuiltinType [[ADDR_16:0x[a-z0-9]*]] 'short' +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType [[ADDR_15:0x[a-z0-9]*]] 'short &' +// CHECK-NEXT: | | `-typeDetails: BuiltinType [[ADDR_16:0x[a-z0-9]*]] 'short' // CHECK-NEXT: | |-CXXRecordDecl [[ADDR_17:0x[a-z0-9]*]] col:29 implicit struct remove_reference // CHECK-NEXT: | `-TypedefDecl [[ADDR_18:0x[a-z0-9]*]] col:67 referenced type 'short' -// CHECK-NEXT: | `-SubstTemplateTypeParmType [[ADDR_19:0x[a-z0-9]*]] 'short' sugar class depth 0 index 0 _Tp +// CHECK-NEXT: | `-typeDetails: SubstTemplateTypeParmType [[ADDR_19:0x[a-z0-9]*]] 'short' sugar class depth 0 index 0 _Tp // CHECK-NEXT: | |-ClassTemplateSpecialization [[ADDR_14]] 'remove_reference' -// CHECK-NEXT: | `-BuiltinType [[ADDR_16]] 'short' +// CHECK-NEXT: | `-typeDetails: BuiltinType [[ADDR_16]] 'short' // CHECK-NEXT: |-ClassTemplatePartialSpecializationDecl [[ADDR_20:0x[a-z0-9]*]] col:29 struct remove_reference definition // CHECK-NEXT: | |-DefinitionData empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init // CHECK-NEXT: | | |-DefaultConstructor exists trivial constexpr needs_implicit defaulted_is_constexpr @@ -150,12 +150,12 @@ int test(float &&f, short &&s) { // CHECK-NEXT: | | |-MoveAssignment exists simple trivial needs_implicit // CHECK-NEXT: | | `-Destructor simple irrelevant trivial needs_implicit // CHECK-NEXT: | |-TemplateArgument type 'type-parameter-0-0 &' -// CHECK-NEXT: | | `-LValueReferenceType [[ADDR_21:0x[a-z0-9]*]] 'type-parameter-0-0 &' dependent -// CHECK-NEXT: | | `-TemplateTypeParmType [[ADDR_22:0x[a-z0-9]*]] 'type-parameter-0-0' dependent depth 0 index 0 +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType [[ADDR_21:0x[a-z0-9]*]] 'type-parameter-0-0 &' dependent +// CHECK-NEXT: | | `-typeDetails: TemplateTypeParmType [[ADDR_22:0x[a-z0-9]*]] 'type-parameter-0-0' dependent depth 0 index 0 // CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_13:0x[a-z0-9]*]] col:17 referenced class depth 0 index 0 _Tp // CHECK-NEXT: | |-CXXRecordDecl [[ADDR_23:0x[a-z0-9]*]] col:29 implicit struct remove_reference // CHECK-NEXT: | `-TypedefDecl [[ADDR_24:0x[a-z0-9]*]] col:67 type '_Tp' -// CHECK-NEXT: | `-TemplateTypeParmType [[ADDR_12:0x[a-z0-9]*]] '_Tp' dependent depth 0 index 0 +// CHECK-NEXT: | `-typeDetails: TemplateTypeParmType [[ADDR_12:0x[a-z0-9]*]] '_Tp' dependent depth 0 index 0 // CHECK-NEXT: | `-TemplateTypeParm [[ADDR_13]] '_Tp' // CHECK-NEXT: |-ClassTemplatePartialSpecializationDecl [[ADDR_25:0x[a-z0-9]*]] col:29 struct remove_reference definition // CHECK-NEXT: | |-DefinitionData empty aggregate standard_layout trivially_copyable pod trivial literal has_constexpr_non_copy_move_ctor can_const_default_init @@ -166,73 +166,73 @@ int test(float &&f, short &&s) { // CHECK-NEXT: | | |-MoveAssignment exists simple trivial needs_implicit // CHECK-NEXT: | | `-Destructor simple irrelevant trivial needs_implicit // CHECK-NEXT: | |-TemplateArgument type 'type-parameter-0-0 &&' -// CHECK-NEXT: | | `-RValueReferenceType [[ADDR_26:0x[a-z0-9]*]] 'type-parameter-0-0 &&' dependent -// CHECK-NEXT: | | `-TemplateTypeParmType [[ADDR_22]] 'type-parameter-0-0' dependent depth 0 index 0 +// CHECK-NEXT: | | `-typeDetails: RValueReferenceType [[ADDR_26:0x[a-z0-9]*]] 'type-parameter-0-0 &&' dependent +// CHECK-NEXT: | | `-typeDetails: TemplateTypeParmType [[ADDR_22]] 'type-parameter-0-0' dependent depth 0 index 0 // CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_27:0x[a-z0-9]*]] col:17 referenced class depth 0 index 0 _Tp // CHECK-NEXT: | |-CXXRecordDecl [[ADDR_28:0x[a-z0-9]*]] col:29 implicit struct remove_reference // CHECK-NEXT: | `-TypedefDecl [[ADDR_29:0x[a-z0-9]*]] col:68 type '_Tp' -// CHECK-NEXT: | `-TemplateTypeParmType [[ADDR_30:0x[a-z0-9]*]] '_Tp' dependent depth 0 index 0 +// CHECK-NEXT: | `-typeDetails: TemplateTypeParmType [[ADDR_30:0x[a-z0-9]*]] '_Tp' dependent depth 0 index 0 // CHECK-NEXT: | `-TemplateTypeParm [[ADDR_27]] '_Tp' // CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_31:0x[a-z0-9]*]] line:11:1 move // CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_32:0x[a-z0-9]*]] col:17 referenced class depth 0 index 0 _Tp // CHECK-NEXT: | |-FunctionDecl [[ADDR_33:0x[a-z0-9]*]] line:11:1 move 'typename remove_reference<_Tp>::type &&(_Tp &&)' inline // CHECK-NEXT: | | |-ParmVarDecl [[ADDR_34:0x[a-z0-9]*]] col:12 referenced __t '_Tp &&' -// CHECK-NEXT: | | `-CompoundStmt [[ADDR_35:0x[a-z0-9]*]] +// CHECK: | | `-CompoundStmt [[ADDR_35:0x[a-z0-9]*]] // CHECK-NEXT: | | |-DeclStmt [[ADDR_36:0x[a-z0-9]*]] // CHECK-NEXT: | | | `-TypedefDecl [[ADDR_37:0x[a-z0-9]*]] col:48 referenced _Up 'typename remove_reference<_Tp>::type' -// CHECK-NEXT: | | | `-DependentNameType [[ADDR_38:0x[a-z0-9]*]] 'typename remove_reference<_Tp>::type' dependent +// CHECK-NEXT: | | | `-typeDetails: DependentNameType [[ADDR_38:0x[a-z0-9]*]] 'typename remove_reference<_Tp>::type' dependent // CHECK-NEXT: | | `-ReturnStmt [[ADDR_39:0x[a-z0-9]*]] // CHECK-NEXT: | | `-CXXStaticCastExpr [[ADDR_40:0x[a-z0-9]*]] '_Up':'typename remove_reference<_Tp>::type' xvalue static_cast<_Up &&> // CHECK-NEXT: | | `-DeclRefExpr [[ADDR_41:0x[a-z0-9]*]] '_Tp' {{.*}}ParmVar [[ADDR_34]] '__t' '_Tp &&' // CHECK-NEXT: | |-FunctionDecl [[ADDR_42:0x[a-z0-9]*]] line:11:1 used move 'typename remove_reference::type &&(float &)' implicit_instantiation inline // CHECK-NEXT: | | |-TemplateArgument type 'float &' -// CHECK-NEXT: | | | `-LValueReferenceType [[ADDR_7]] 'float &' -// CHECK-NEXT: | | | `-BuiltinType [[ADDR_8]] 'float' +// CHECK-NEXT: | | | `-typeDetails: LValueReferenceType [[ADDR_7]] 'float &' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType [[ADDR_8]] 'float' // CHECK-NEXT: | | |-ParmVarDecl [[ADDR_43:0x[a-z0-9]*]] col:12 used __t 'float &' -// CHECK-NEXT: | | `-CompoundStmt [[ADDR_44:0x[a-z0-9]*]] +// CHECK: | | `-CompoundStmt [[ADDR_44:0x[a-z0-9]*]] // CHECK-NEXT: | | |-DeclStmt [[ADDR_45:0x[a-z0-9]*]] // CHECK-NEXT: | | | `-TypedefDecl [[ADDR_46:0x[a-z0-9]*]] col:48 referenced _Up 'typename remove_reference::type':'float' -// CHECK-NEXT: | | | `-ElaboratedType [[ADDR_47:0x[a-z0-9]*]] 'typename remove_reference::type' sugar -// CHECK-NEXT: | | | `-TypedefType [[ADDR_48:0x[a-z0-9]*]] 'remove_reference::type' sugar +// CHECK-NEXT: | | | `-typeDetails: ElaboratedType [[ADDR_47:0x[a-z0-9]*]] 'typename remove_reference::type' sugar +// CHECK-NEXT: | | | `-typeDetails: TypedefType [[ADDR_48:0x[a-z0-9]*]] 'remove_reference::type' sugar // CHECK-NEXT: | | | |-Typedef [[ADDR_10]] 'type' -// CHECK-NEXT: | | | `-SubstTemplateTypeParmType [[ADDR_11]] 'float' sugar class depth 0 index 0 _Tp +// CHECK-NEXT: | | | `-typeDetails: SubstTemplateTypeParmType [[ADDR_11]] 'float' sugar class depth 0 index 0 _Tp // CHECK-NEXT: | | | |-ClassTemplateSpecialization [[ADDR_6]] 'remove_reference' -// CHECK-NEXT: | | | `-BuiltinType [[ADDR_8]] 'float' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType [[ADDR_8]] 'float' // CHECK-NEXT: | | `-ReturnStmt [[ADDR_49:0x[a-z0-9]*]] // CHECK-NEXT: | | `-CXXStaticCastExpr [[ADDR_50:0x[a-z0-9]*]] '_Up':'float' xvalue static_cast<_Up &&> // CHECK-NEXT: | | `-DeclRefExpr [[ADDR_51:0x[a-z0-9]*]] 'float' {{.*}}ParmVar [[ADDR_43]] '__t' 'float &' // CHECK-NEXT: | `-FunctionDecl [[ADDR_52:0x[a-z0-9]*]] line:11:1 used move 'typename remove_reference::type &&(short &)' implicit_instantiation inline // CHECK-NEXT: | |-TemplateArgument type 'short &' -// CHECK-NEXT: | | `-LValueReferenceType [[ADDR_15]] 'short &' -// CHECK-NEXT: | | `-BuiltinType [[ADDR_16]] 'short' +// CHECK-NEXT: | | `-typeDetails: LValueReferenceType [[ADDR_15]] 'short &' +// CHECK-NEXT: | | `-typeDetails: BuiltinType [[ADDR_16]] 'short' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_53:0x[a-z0-9]*]] col:12 used __t 'short &' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_54:0x[a-z0-9]*]] +// CHECK: | `-CompoundStmt [[ADDR_54:0x[a-z0-9]*]] // CHECK-NEXT: | |-DeclStmt [[ADDR_55:0x[a-z0-9]*]] // CHECK-NEXT: | | `-TypedefDecl [[ADDR_56:0x[a-z0-9]*]] col:48 referenced _Up 'typename remove_reference::type':'short' -// CHECK-NEXT: | | `-ElaboratedType [[ADDR_57:0x[a-z0-9]*]] 'typename remove_reference::type' sugar -// CHECK-NEXT: | | `-TypedefType [[ADDR_58:0x[a-z0-9]*]] 'remove_reference::type' sugar +// CHECK-NEXT: | | `-typeDetails: ElaboratedType [[ADDR_57:0x[a-z0-9]*]] 'typename remove_reference::type' sugar +// CHECK-NEXT: | | `-typeDetails: TypedefType [[ADDR_58:0x[a-z0-9]*]] 'remove_reference::type' sugar // CHECK-NEXT: | | |-Typedef [[ADDR_18]] 'type' -// CHECK-NEXT: | | `-SubstTemplateTypeParmType [[ADDR_19]] 'short' sugar class depth 0 index 0 _Tp +// CHECK-NEXT: | | `-typeDetails: SubstTemplateTypeParmType [[ADDR_19]] 'short' sugar class depth 0 index 0 _Tp // CHECK-NEXT: | | |-ClassTemplateSpecialization [[ADDR_14]] 'remove_reference' -// CHECK-NEXT: | | `-BuiltinType [[ADDR_16]] 'short' +// CHECK-NEXT: | | `-typeDetails: BuiltinType [[ADDR_16]] 'short' // CHECK-NEXT: | `-ReturnStmt [[ADDR_59:0x[a-z0-9]*]] // CHECK-NEXT: | `-CXXStaticCastExpr [[ADDR_60:0x[a-z0-9]*]] '_Up':'short' xvalue static_cast<_Up &&> // CHECK-NEXT: | `-DeclRefExpr [[ADDR_61:0x[a-z0-9]*]] 'short' {{.*}}ParmVar [[ADDR_53]] '__t' 'short &' // CHECK-NEXT: |-VarDecl [[ADDR_62:0x[a-z0-9]*]] col:5 used Good 'int' -// CHECK-NEXT: |-VarDecl [[ADDR_63:0x[a-z0-9]*]] col:11 used Bad 'int' -// CHECK-NEXT: |-FunctionDecl [[ADDR_64:0x[a-z0-9]*]] line:18:6 used also_before 'int &({{.*}})' +// CHECK: |-VarDecl [[ADDR_63:0x[a-z0-9]*]] col:11 used Bad 'int' +// CHECK: |-FunctionDecl [[ADDR_64:0x[a-z0-9]*]] line:18:6 used also_before 'int &({{.*}})' // CHECK-NEXT: | |-CompoundStmt [[ADDR_65:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_66:0x[a-z0-9]*]] // CHECK-NEXT: | | `-DeclRefExpr [[ADDR_67:0x[a-z0-9]*]] 'int' {{.*}}Var [[ADDR_63]] 'Bad' 'int' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_68:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(0): llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_68:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(0): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_69:0x[a-z0-9]*]] 'int &({{.*}})' {{.*}}Function [[ADDR_70:0x[a-z0-9]*]] 'also_before[implementation={vendor(llvm)}]' 'int &({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_71:0x[a-z0-9]*]] line:21:5 used also_before 'int (float &&)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_72:0x[a-z0-9]*]] col:25 'float &&' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_73:0x[a-z0-9]*]] +// CHECK: | `-CompoundStmt [[ADDR_73:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_74:0x[a-z0-9]*]] // CHECK-NEXT: | `-IntegerLiteral [[ADDR_75:0x[a-z0-9]*]] 'int' 0 // CHECK-NEXT: |-FunctionDecl [[ADDR_76:0x[a-z0-9]*]] col:5 implicit also_after 'int ({{.*}})' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_77:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_77:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_78:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_79:0x[a-z0-9]*]] 'also_after[implementation={vendor(llvm)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_79]] line:27:1 also_after[implementation={vendor(llvm)}] 'int ({{.*}})' // CHECK-NEXT: | `-CompoundStmt [[ADDR_80:0x[a-z0-9]*]] @@ -240,47 +240,47 @@ int test(float &&f, short &&s) { // CHECK-NEXT: | `-IntegerLiteral [[ADDR_82:0x[a-z0-9]*]] 'int' 1 // CHECK-NEXT: |-FunctionDecl [[ADDR_83:0x[a-z0-9]*]] col:5 implicit also_after 'int (int &)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_84:0x[a-z0-9]*]] col:21 'int &' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_85:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} +// CHECK: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_85:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_86:0x[a-z0-9]*]] 'int (int &)' {{.*}}Function [[ADDR_87:0x[a-z0-9]*]] 'also_after[implementation={vendor(llvm)}]' 'int (int &)' // CHECK-NEXT: |-FunctionDecl [[ADDR_87]] line:30:1 also_after[implementation={vendor(llvm)}] 'int (int &)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_84]] col:21 'int &' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_88:0x[a-z0-9]*]] +// CHECK: | `-CompoundStmt [[ADDR_88:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_89:0x[a-z0-9]*]] // CHECK-NEXT: | `-IntegerLiteral [[ADDR_90:0x[a-z0-9]*]] 'int' 2 // CHECK-NEXT: |-FunctionDecl [[ADDR_91:0x[a-z0-9]*]] col:5 implicit used also_after 'int (double &)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_92:0x[a-z0-9]*]] col:24 'double &' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_93:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} +// CHECK: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_93:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_94:0x[a-z0-9]*]] 'int (double &)' {{.*}}Function [[ADDR_95:0x[a-z0-9]*]] 'also_after[implementation={vendor(llvm)}]' 'int (double &)' // CHECK-NEXT: |-FunctionDecl [[ADDR_95]] line:34:1 also_after[implementation={vendor(llvm)}] 'int (double &)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_92]] col:24 'double &' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_96:0x[a-z0-9]*]] +// CHECK: | `-CompoundStmt [[ADDR_96:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_97:0x[a-z0-9]*]] // CHECK-NEXT: | `-IntegerLiteral [[ADDR_98:0x[a-z0-9]*]] 'int' 0 // CHECK-NEXT: |-FunctionDecl [[ADDR_99:0x[a-z0-9]*]] col:5 implicit also_after 'int (double &&)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_100:0x[a-z0-9]*]] col:25 'double &&' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_101:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} +// CHECK: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_101:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_102:0x[a-z0-9]*]] 'int (double &&)' {{.*}}Function [[ADDR_103:0x[a-z0-9]*]] 'also_after[implementation={vendor(llvm)}]' 'int (double &&)' // CHECK-NEXT: |-FunctionDecl [[ADDR_103]] line:37:1 also_after[implementation={vendor(llvm)}] 'int (double &&)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_100]] col:25 'double &&' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_104:0x[a-z0-9]*]] +// CHECK: | `-CompoundStmt [[ADDR_104:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_105:0x[a-z0-9]*]] // CHECK-NEXT: | `-IntegerLiteral [[ADDR_106:0x[a-z0-9]*]] 'int' 3 // CHECK-NEXT: |-FunctionDecl [[ADDR_107:0x[a-z0-9]*]] col:5 implicit also_after 'int (short &)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_108:0x[a-z0-9]*]] col:23 'short &' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_109:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} +// CHECK: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_109:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_110:0x[a-z0-9]*]] 'int (short &)' {{.*}}Function [[ADDR_111:0x[a-z0-9]*]] 'also_after[implementation={vendor(llvm)}]' 'int (short &)' // CHECK-NEXT: |-FunctionDecl [[ADDR_111]] line:40:1 also_after[implementation={vendor(llvm)}] 'int (short &)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_108]] col:23 'short &' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_112:0x[a-z0-9]*]] +// CHECK: | `-CompoundStmt [[ADDR_112:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_113:0x[a-z0-9]*]] // CHECK-NEXT: | `-IntegerLiteral [[ADDR_114:0x[a-z0-9]*]] 'int' 5 // CHECK-NEXT: |-FunctionDecl [[ADDR_115:0x[a-z0-9]*]] col:5 implicit used also_after 'int (short &&)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_116:0x[a-z0-9]*]] col:24 'short &&' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_117:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} +// CHECK: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_117:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_118:0x[a-z0-9]*]] 'int (short &&)' {{.*}}Function [[ADDR_119:0x[a-z0-9]*]] 'also_after[implementation={vendor(llvm)}]' 'int (short &&)' // CHECK-NEXT: |-FunctionDecl [[ADDR_119]] line:43:1 also_after[implementation={vendor(llvm)}] 'int (short &&)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_116]] col:24 'short &&' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_120:0x[a-z0-9]*]] +// CHECK: | `-CompoundStmt [[ADDR_120:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_121:0x[a-z0-9]*]] // CHECK-NEXT: | `-IntegerLiteral [[ADDR_122:0x[a-z0-9]*]] 'int' 0 // CHECK-NEXT: |-FunctionDecl [[ADDR_70]] line:50:1 also_before[implementation={vendor(llvm)}] 'int &({{.*}})' @@ -289,43 +289,43 @@ int test(float &&f, short &&s) { // CHECK-NEXT: | `-DeclRefExpr [[ADDR_125:0x[a-z0-9]*]] 'int' {{.*}}Var [[ADDR_62]] 'Good' 'int' // CHECK-NEXT: |-FunctionDecl [[ADDR_126:0x[a-z0-9]*]] col:5 implicit also_before 'int (float &)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_127:0x[a-z0-9]*]] col:24 'float &' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_128:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(0): llvm)} +// CHECK: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_128:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(0): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_129:0x[a-z0-9]*]] 'int (float &)' {{.*}}Function [[ADDR_130:0x[a-z0-9]*]] 'also_before[implementation={vendor(llvm)}]' 'int (float &)' // CHECK-NEXT: |-FunctionDecl [[ADDR_130]] line:54:1 also_before[implementation={vendor(llvm)}] 'int (float &)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_127]] col:24 'float &' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_131:0x[a-z0-9]*]] +// CHECK: | `-CompoundStmt [[ADDR_131:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_132:0x[a-z0-9]*]] // CHECK-NEXT: | `-IntegerLiteral [[ADDR_133:0x[a-z0-9]*]] 'int' 6 // CHECK-NEXT: |-FunctionDecl [[ADDR_134:0x[a-z0-9]*]] prev [[ADDR_76]] line:59:5 also_after 'int ({{.*}})' // CHECK-NEXT: | |-CompoundStmt [[ADDR_135:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_136:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_137:0x[a-z0-9]*]] 'int' 7 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_138:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(score(100): llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_138:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(score(100): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_78]] 'int ({{.*}})' {{.*}}Function [[ADDR_79]] 'also_after[implementation={vendor(llvm)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_139:0x[a-z0-9]*]] line:62:5 also_after 'int (int)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_140:0x[a-z0-9]*]] col:19 'int' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_141:0x[a-z0-9]*]] +// CHECK: | `-CompoundStmt [[ADDR_141:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_142:0x[a-z0-9]*]] // CHECK-NEXT: | `-IntegerLiteral [[ADDR_143:0x[a-z0-9]*]] 'int' 8 // CHECK-NEXT: |-FunctionDecl [[ADDR_144:0x[a-z0-9]*]] prev [[ADDR_91]] line:65:5 used also_after 'int (double &)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_145:0x[a-z0-9]*]] col:24 'double &' -// CHECK-NEXT: | |-CompoundStmt [[ADDR_146:0x[a-z0-9]*]] +// CHECK: | |-CompoundStmt [[ADDR_146:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_147:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_148:0x[a-z0-9]*]] 'int' 9 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_149:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(score(100): llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_149:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(score(100): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_94]] 'int (double &)' {{.*}}Function [[ADDR_95]] 'also_after[implementation={vendor(llvm)}]' 'int (double &)' // CHECK-NEXT: |-FunctionDecl [[ADDR_150:0x[a-z0-9]*]] prev [[ADDR_115]] line:68:5 used also_after 'int (short &&)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_151:0x[a-z0-9]*]] col:24 'short &&' -// CHECK-NEXT: | |-CompoundStmt [[ADDR_152:0x[a-z0-9]*]] +// CHECK: | |-CompoundStmt [[ADDR_152:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_153:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_154:0x[a-z0-9]*]] 'int' 10 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_155:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(score(100): llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_155:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(score(100): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_118]] 'int (short &&)' {{.*}}Function [[ADDR_119]] 'also_after[implementation={vendor(llvm)}]' 'int (short &&)' // CHECK-NEXT: |-FunctionDecl [[ADDR_156:0x[a-z0-9]*]] line:72:5 used test1 'int ({{.*}})' // CHECK-NEXT: | `-CompoundStmt [[ADDR_157:0x[a-z0-9]*]] // CHECK-NEXT: | |-DeclStmt [[ADDR_158:0x[a-z0-9]*]] // CHECK-NEXT: | | `-VarDecl [[ADDR_159:0x[a-z0-9]*]] col:10 used d 'double' -// CHECK-NEXT: | `-ReturnStmt [[ADDR_160:0x[a-z0-9]*]] +// CHECK: | `-ReturnStmt [[ADDR_160:0x[a-z0-9]*]] // CHECK-NEXT: | `-PseudoObjectExpr [[ADDR_161:0x[a-z0-9]*]] 'int' // CHECK-NEXT: | |-CallExpr [[ADDR_162:0x[a-z0-9]*]] 'int' // CHECK-NEXT: | | |-ImplicitCastExpr [[ADDR_163:0x[a-z0-9]*]] 'int (*)(double &)' @@ -352,7 +352,7 @@ int test(float &&f, short &&s) { // CHECK-NEXT: | `-DeclRefExpr [[ADDR_181:0x[a-z0-9]*]] 'int' {{.*}}Var [[ADDR_62]] 'Good' 'int' // CHECK-NEXT: |-FunctionDecl [[ADDR_182:0x[a-z0-9]*]] line:83:5 used test3 'int (float &&)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_183:0x[a-z0-9]*]] col:19 used f 'float &&' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_184:0x[a-z0-9]*]] +// CHECK: | `-CompoundStmt [[ADDR_184:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_185:0x[a-z0-9]*]] // CHECK-NEXT: | `-CallExpr [[ADDR_186:0x[a-z0-9]*]] 'int' // CHECK-NEXT: | |-ImplicitCastExpr [[ADDR_187:0x[a-z0-9]*]] 'int (*)(float &&)' @@ -363,7 +363,7 @@ int test(float &&f, short &&s) { // CHECK-NEXT: | `-DeclRefExpr [[ADDR_192:0x[a-z0-9]*]] 'float' {{.*}}ParmVar [[ADDR_183]] 'f' 'float &&' // CHECK-NEXT: |-FunctionDecl [[ADDR_193:0x[a-z0-9]*]] line:88:5 used test4 'int (short &&)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_194:0x[a-z0-9]*]] col:19 used s 'short &&' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_195:0x[a-z0-9]*]] +// CHECK: | `-CompoundStmt [[ADDR_195:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_196:0x[a-z0-9]*]] // CHECK-NEXT: | `-PseudoObjectExpr [[ADDR_197:0x[a-z0-9]*]] 'int' // CHECK-NEXT: | |-CallExpr [[ADDR_198:0x[a-z0-9]*]] 'int' @@ -382,8 +382,8 @@ int test(float &&f, short &&s) { // CHECK-NEXT: | `-DeclRefExpr [[ADDR_204]] 'short' {{.*}}ParmVar [[ADDR_194]] 's' 'short &&' // CHECK-NEXT: `-FunctionDecl [[ADDR_207:0x[a-z0-9]*]] line:93:5 test 'int (float &&, short &&)' // CHECK-NEXT: |-ParmVarDecl [[ADDR_208:0x[a-z0-9]*]] col:18 used f 'float &&' -// CHECK-NEXT: |-ParmVarDecl [[ADDR_209:0x[a-z0-9]*]] col:29 used s 'short &&' -// CHECK-NEXT: `-CompoundStmt [[ADDR_210:0x[a-z0-9]*]] +// CHECK: |-ParmVarDecl [[ADDR_209:0x[a-z0-9]*]] col:29 used s 'short &&' +// CHECK: `-CompoundStmt [[ADDR_210:0x[a-z0-9]*]] // CHECK-NEXT: `-ReturnStmt [[ADDR_211:0x[a-z0-9]*]] // CHECK-NEXT: `-BinaryOperator [[ADDR_212:0x[a-z0-9]*]] 'int' '+' // CHECK-NEXT: |-BinaryOperator [[ADDR_213:0x[a-z0-9]*]] 'int' '+' diff --git a/clang/test/AST/ast-dump-openmp-begin-declare-variant_template_1.cpp b/clang/test/AST/ast-dump-openmp-begin-declare-variant_template_1.cpp index 0dfed6ffa240d..da31ed2aaa357 100644 --- a/clang/test/AST/ast-dump-openmp-begin-declare-variant_template_1.cpp +++ b/clang/test/AST/ast-dump-openmp-begin-declare-variant_template_1.cpp @@ -56,10 +56,10 @@ int test() { // CHECK-NEXT: | |-CompoundStmt [[ADDR_1:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_2:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_3:0x[a-z0-9]*]] 'int' 1 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(0): llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_4:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(0): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_5:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_6:0x[a-z0-9]*]] 'also_before[implementation={vendor(llvm)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_7:0x[a-z0-9]*]] col:5 implicit also_after 'int ({{.*}})' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_8:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_8:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_9:0x[a-z0-9]*]] 'int ({{.*}})' Function [[ADDR_10:0x[a-z0-9]*]] 'also_after[implementation={vendor(llvm)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_10]] line:10:1 also_after[implementation={vendor(llvm)}] 'int ({{.*}})' // CHECK-NEXT: | `-CompoundStmt [[ADDR_11:0x[a-z0-9]*]] @@ -67,20 +67,20 @@ int test() { // CHECK-NEXT: | `-IntegerLiteral [[ADDR_13:0x[a-z0-9]*]] 'int' 2 // CHECK-NEXT: |-FunctionDecl [[ADDR_14:0x[a-z0-9]*]] col:5 implicit also_after 'int (int)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_15:0x[a-z0-9]*]] col:19 'int' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_16:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} +// CHECK: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_16:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_17:0x[a-z0-9]*]] 'int (int)' Function [[ADDR_18:0x[a-z0-9]*]] 'also_after[implementation={vendor(llvm)}]' 'int (int)' // CHECK-NEXT: |-FunctionDecl [[ADDR_18]] line:13:1 also_after[implementation={vendor(llvm)}] 'int (int)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_15]] col:19 'int' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_19:0x[a-z0-9]*]] +// CHECK: | `-CompoundStmt [[ADDR_19:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_20:0x[a-z0-9]*]] // CHECK-NEXT: | `-IntegerLiteral [[ADDR_21:0x[a-z0-9]*]] 'int' 3 // CHECK-NEXT: |-FunctionDecl [[ADDR_22:0x[a-z0-9]*]] col:5 implicit used also_after 'int (double)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_23:0x[a-z0-9]*]] col:22 'double' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_24:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} +// CHECK: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_24:0x[a-z0-9]*]] <> Implicit implementation={vendor(score(100): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_25:0x[a-z0-9]*]] 'int (double)' Function [[ADDR_26:0x[a-z0-9]*]] 'also_after[implementation={vendor(llvm)}]' 'int (double)' // CHECK-NEXT: |-FunctionDecl [[ADDR_26]] line:16:1 also_after[implementation={vendor(llvm)}] 'int (double)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_23]] col:22 'double' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_27:0x[a-z0-9]*]] +// CHECK: | `-CompoundStmt [[ADDR_27:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_28:0x[a-z0-9]*]] // CHECK-NEXT: | `-IntegerLiteral [[ADDR_29:0x[a-z0-9]*]] 'int' 0 // CHECK-NEXT: |-FunctionDecl [[ADDR_6]] line:21:1 also_before[implementation={vendor(llvm)}] 'int ({{.*}})' @@ -91,21 +91,21 @@ int test() { // CHECK-NEXT: | |-CompoundStmt [[ADDR_34:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_35:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_36:0x[a-z0-9]*]] 'int' 4 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_37:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(score(100): llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_37:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(score(100): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_9]] 'int ({{.*}})' Function [[ADDR_10]] 'also_after[implementation={vendor(llvm)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_38:0x[a-z0-9]*]] prev [[ADDR_14]] line:29:5 also_after 'int (int)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_39:0x[a-z0-9]*]] col:19 'int' -// CHECK-NEXT: | |-CompoundStmt [[ADDR_40:0x[a-z0-9]*]] +// CHECK: | |-CompoundStmt [[ADDR_40:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_41:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_42:0x[a-z0-9]*]] 'int' 5 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_43:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(score(100): llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_43:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(score(100): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_17]] 'int (int)' Function [[ADDR_18]] 'also_after[implementation={vendor(llvm)}]' 'int (int)' // CHECK-NEXT: |-FunctionDecl [[ADDR_44:0x[a-z0-9]*]] prev [[ADDR_22]] line:32:5 used also_after 'int (double)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_45:0x[a-z0-9]*]] col:22 'double' -// CHECK-NEXT: | |-CompoundStmt [[ADDR_46:0x[a-z0-9]*]] +// CHECK: | |-CompoundStmt [[ADDR_46:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_47:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_48:0x[a-z0-9]*]] 'int' 6 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_49:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(score(100): llvm)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_49:0x[a-z0-9]*]] <> Inherited Implicit implementation={vendor(score(100): llvm)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_25]] 'int (double)' Function [[ADDR_26]] 'also_after[implementation={vendor(llvm)}]' 'int (double)' // CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_50:0x[a-z0-9]*]] line:37:5 test1 // CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_51:0x[a-z0-9]*]] col:19 referenced typename depth 0 index 0 T @@ -134,10 +134,10 @@ int test() { // CHECK-NEXT: | `-ImplicitCastExpr [[ADDR_67]] 'double' part_of_explicit_cast // CHECK-NEXT: | `-IntegerLiteral [[ADDR_58]] 'int' 0 // CHECK-NEXT: |-TypedefDecl [[ADDR_70:0x[a-z0-9]*]] col:14 referenced Ty 'int (*)({{.*}})' -// CHECK-NEXT: | `-PointerType [[ADDR_71:0x[a-z0-9]*]] 'int (*)({{.*}})' -// CHECK-NEXT: | `-ParenType [[ADDR_72:0x[a-z0-9]*]] 'int ({{.*}})' sugar -// CHECK-NEXT: | `-FunctionProtoType [[ADDR_73:0x[a-z0-9]*]] 'int ({{.*}})' cdecl -// CHECK-NEXT: | `-BuiltinType [[ADDR_74:0x[a-z0-9]*]] 'int' +// CHECK-NEXT: | `-typeDetails: PointerType [[ADDR_71:0x[a-z0-9]*]] 'int (*)({{.*}})' +// CHECK-NEXT: | `-typeDetails: ParenType [[ADDR_72:0x[a-z0-9]*]] 'int ({{.*}})' sugar +// CHECK-NEXT: | `-typeDetails: FunctionProtoType [[ADDR_73:0x[a-z0-9]*]] 'int ({{.*}})' cdecl +// CHECK: | `-functionDetails: cdeclReturnType [[ADDR_74:0x[a-z0-9]*]] 'int' // CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_75:0x[a-z0-9]*]] line:45:5 test2 // CHECK-NEXT: | |-NonTypeTemplateParmDecl [[ADDR_76:0x[a-z0-9]*]] col:13 referenced 'Ty':'int (*)({{.*}})' depth 0 index 0 fn // CHECK-NEXT: | |-FunctionDecl [[ADDR_77:0x[a-z0-9]*]] line:45:5 test2 'int ({{.*}})' diff --git a/clang/test/AST/ast-dump-openmp-begin-declare-variant_template_2.cpp b/clang/test/AST/ast-dump-openmp-begin-declare-variant_template_2.cpp index 6fe05e33a5fb8..3f49e30a77d0a 100644 --- a/clang/test/AST/ast-dump-openmp-begin-declare-variant_template_2.cpp +++ b/clang/test/AST/ast-dump-openmp-begin-declare-variant_template_2.cpp @@ -58,19 +58,19 @@ int test() { // CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_1:0x[a-z0-9]*]] col:20 referenced typename depth 0 index 0 T // CHECK-NEXT: | |-FunctionDecl [[ADDR_2:0x[a-z0-9]*]] line:5:5 also_before 'int (T)' // CHECK-NEXT: | | |-ParmVarDecl [[ADDR_3:0x[a-z0-9]*]] col:18 'T' -// CHECK-NEXT: | | |-CompoundStmt [[ADDR_4:0x[a-z0-9]*]] +// CHECK: | | |-CompoundStmt [[ADDR_4:0x[a-z0-9]*]] // CHECK-NEXT: | | | `-ReturnStmt [[ADDR_5:0x[a-z0-9]*]] // CHECK-NEXT: | | | `-IntegerLiteral [[ADDR_6:0x[a-z0-9]*]] 'int' 1 -// CHECK-NEXT: | | `-OMPDeclareVariantAttr [[ADDR_7:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} +// CHECK-NEXT: | | `-attrDetails: OMPDeclareVariantAttr [[ADDR_7:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} // CHECK-NEXT: | | `-DeclRefExpr [[ADDR_8:0x[a-z0-9]*]] 'int (T)' {{.*}}Function [[ADDR_9:0x[a-z0-9]*]] 'also_before[implementation={extension(allow_templates)}]' 'int (T)' // CHECK-NEXT: | `-FunctionDecl [[ADDR_10:0x[a-z0-9]*]] line:5:5 used also_before 'int (double)' // CHECK-NEXT: | |-TemplateArgument type 'double' -// CHECK-NEXT: | | `-BuiltinType [[ADDR_11:0x[a-z0-9]*]] 'double' +// CHECK-NEXT: | | `-typeDetails: BuiltinType [[ADDR_11:0x[a-z0-9]*]] 'double' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_12:0x[a-z0-9]*]] col:18 'double' -// CHECK-NEXT: | |-CompoundStmt [[ADDR_13:0x[a-z0-9]*]] +// CHECK: | |-CompoundStmt [[ADDR_13:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_14:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_6]] 'int' 1 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_15:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_15:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_16:0x[a-z0-9]*]] 'int (double)' {{.*}}Function [[ADDR_17:0x[a-z0-9]*]] 'also_before[implementation={extension(allow_templates)}]' 'int (double)' // CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_18:0x[a-z0-9]*]] line:9:5 also_before_mismatch // CHECK-NEXT: | |-NonTypeTemplateParmDecl [[ADDR_19:0x[a-z0-9]*]] col:15 'int' depth 0 index 0 V @@ -91,43 +91,43 @@ int test() { // CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_32:0x[a-z0-9]*]] col:20 referenced typename depth 0 index 0 T // CHECK-NEXT: | |-FunctionDecl [[ADDR_9]] line:18:1 referenced also_before[implementation={extension(allow_templates)}] 'int (T)' // CHECK-NEXT: | | |-ParmVarDecl [[ADDR_33:0x[a-z0-9]*]] col:18 'T' -// CHECK-NEXT: | | `-CompoundStmt [[ADDR_34:0x[a-z0-9]*]] +// CHECK: | | `-CompoundStmt [[ADDR_34:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_35:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_36:0x[a-z0-9]*]] 'int' 0 // CHECK-NEXT: | `-FunctionDecl [[ADDR_17]] line:18:1 also_before[implementation={extension(allow_templates)}] 'int (double)' // CHECK-NEXT: | |-TemplateArgument type 'double' -// CHECK-NEXT: | | `-BuiltinType [[ADDR_11]] 'double' +// CHECK-NEXT: | | `-typeDetails: BuiltinType [[ADDR_11]] 'double' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_37:0x[a-z0-9]*]] col:18 'double' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_38:0x[a-z0-9]*]] +// CHECK: | `-CompoundStmt [[ADDR_38:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_39:0x[a-z0-9]*]] // CHECK-NEXT: | `-IntegerLiteral [[ADDR_36]] 'int' 0 // CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_40:0x[a-z0-9]*]] col:5 implicit also_after // CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_41:0x[a-z0-9]*]] col:20 referenced typename depth 0 index 0 T // CHECK-NEXT: | |-FunctionDecl [[ADDR_42:0x[a-z0-9]*]] col:5 also_after 'int (T)' // CHECK-NEXT: | | |-ParmVarDecl [[ADDR_43:0x[a-z0-9]*]] col:17 'T' -// CHECK-NEXT: | | `-OMPDeclareVariantAttr [[ADDR_44:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} +// CHECK: | | `-attrDetails: OMPDeclareVariantAttr [[ADDR_44:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} // CHECK-NEXT: | | `-DeclRefExpr [[ADDR_45:0x[a-z0-9]*]] 'int (T)' {{.*}}Function [[ADDR_46:0x[a-z0-9]*]] 'also_after[implementation={extension(allow_templates)}]' 'int (T)' // CHECK-NEXT: | `-FunctionDecl [[ADDR_47:0x[a-z0-9]*]] line:44:5 used also_after 'int (char)' // CHECK-NEXT: | |-TemplateArgument type 'char' -// CHECK-NEXT: | | `-BuiltinType [[ADDR_48:0x[a-z0-9]*]] 'char' +// CHECK-NEXT: | | `-typeDetails: BuiltinType [[ADDR_48:0x[a-z0-9]*]] 'char' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_49:0x[a-z0-9]*]] col:17 'char' -// CHECK-NEXT: | |-CompoundStmt [[ADDR_50:0x[a-z0-9]*]] +// CHECK: | |-CompoundStmt [[ADDR_50:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_51:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_52:0x[a-z0-9]*]] 'int' 6 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_53:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_53:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_54:0x[a-z0-9]*]] 'int (char)' {{.*}}Function [[ADDR_55:0x[a-z0-9]*]] 'also_after[implementation={extension(allow_templates)}]' 'int (char)' // CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_56:0x[a-z0-9]*]] line:22:1 also_after[implementation={extension(allow_templates)}] // CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_41]] col:20 referenced typename depth 0 index 0 T // CHECK-NEXT: | |-FunctionDecl [[ADDR_46]] line:22:1 referenced also_after[implementation={extension(allow_templates)}] 'int (T)' // CHECK-NEXT: | | |-ParmVarDecl [[ADDR_43]] col:17 'T' -// CHECK-NEXT: | | `-CompoundStmt [[ADDR_57:0x[a-z0-9]*]] +// CHECK: | | `-CompoundStmt [[ADDR_57:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_58:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_59:0x[a-z0-9]*]] 'int' 0 // CHECK-NEXT: | `-FunctionDecl [[ADDR_55]] line:22:1 also_after[implementation={extension(allow_templates)}] 'int (char)' // CHECK-NEXT: | |-TemplateArgument type 'char' -// CHECK-NEXT: | | `-BuiltinType [[ADDR_48]] 'char' +// CHECK-NEXT: | | `-typeDetails: BuiltinType [[ADDR_48]] 'char' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_60:0x[a-z0-9]*]] col:17 'char' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_61:0x[a-z0-9]*]] +// CHECK: | `-CompoundStmt [[ADDR_61:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_62:0x[a-z0-9]*]] // CHECK-NEXT: | `-IntegerLiteral [[ADDR_59]] 'int' 0 // CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_63:0x[a-z0-9]*]] col:5 implicit also_after_mismatch @@ -135,52 +135,52 @@ int test() { // CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_65:0x[a-z0-9]*]] col:32 referenced typename depth 0 index 1 Q // CHECK-NEXT: | `-FunctionDecl [[ADDR_66:0x[a-z0-9]*]] col:5 also_after_mismatch 'int (T, Q)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_67:0x[a-z0-9]*]] col:26 'T' -// CHECK-NEXT: | |-ParmVarDecl [[ADDR_68:0x[a-z0-9]*]] col:29 'Q' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_69:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} +// CHECK: | |-ParmVarDecl [[ADDR_68:0x[a-z0-9]*]] col:29 'Q' +// CHECK: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_69:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_70:0x[a-z0-9]*]] 'int (T, Q)' {{.*}}Function [[ADDR_71:0x[a-z0-9]*]] 'also_after_mismatch[implementation={extension(allow_templates)}]' 'int (T, Q)' // CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_72:0x[a-z0-9]*]] line:26:1 also_after_mismatch[implementation={extension(allow_templates)}] // CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_64]] col:20 referenced typename depth 0 index 0 T // CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_65]] col:32 referenced typename depth 0 index 1 Q // CHECK-NEXT: | `-FunctionDecl [[ADDR_71]] line:26:1 also_after_mismatch[implementation={extension(allow_templates)}] 'int (T, Q)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_67]] col:26 'T' -// CHECK-NEXT: | |-ParmVarDecl [[ADDR_68]] col:29 'Q' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_73:0x[a-z0-9]*]] +// CHECK: | |-ParmVarDecl [[ADDR_68]] col:29 'Q' +// CHECK: | `-CompoundStmt [[ADDR_73:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_74:0x[a-z0-9]*]] // CHECK-NEXT: | `-IntegerLiteral [[ADDR_75:0x[a-z0-9]*]] 'int' 2 // CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_76:0x[a-z0-9]*]] col:5 implicit also_before_mismatch // CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_77:0x[a-z0-9]*]] col:20 referenced typename depth 0 index 0 T // CHECK-NEXT: | `-FunctionDecl [[ADDR_78:0x[a-z0-9]*]] col:5 also_before_mismatch 'int (T)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_79:0x[a-z0-9]*]] col:27 'T' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_80:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} +// CHECK: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_80:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_81:0x[a-z0-9]*]] 'int (T)' {{.*}}Function [[ADDR_82:0x[a-z0-9]*]] 'also_before_mismatch[implementation={extension(allow_templates)}]' 'int (T)' // CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_83:0x[a-z0-9]*]] line:30:1 also_before_mismatch[implementation={extension(allow_templates)}] // CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_77]] col:20 referenced typename depth 0 index 0 T // CHECK-NEXT: | `-FunctionDecl [[ADDR_82]] line:30:1 also_before_mismatch[implementation={extension(allow_templates)}] 'int (T)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_79]] col:27 'T' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_84:0x[a-z0-9]*]] +// CHECK: | `-CompoundStmt [[ADDR_84:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_85:0x[a-z0-9]*]] // CHECK-NEXT: | `-IntegerLiteral [[ADDR_86:0x[a-z0-9]*]] 'int' 3 // CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_87:0x[a-z0-9]*]] col:5 implicit also_before_non_template // CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_88:0x[a-z0-9]*]] col:20 referenced typename depth 0 index 0 T // CHECK-NEXT: | `-FunctionDecl [[ADDR_89:0x[a-z0-9]*]] col:5 also_before_non_template 'int (T)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_90:0x[a-z0-9]*]] col:31 'T' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_91:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} +// CHECK: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_91:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_92:0x[a-z0-9]*]] 'int (T)' {{.*}}Function [[ADDR_93:0x[a-z0-9]*]] 'also_before_non_template[implementation={extension(allow_templates)}]' 'int (T)' // CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_94:0x[a-z0-9]*]] line:34:1 also_before_non_template[implementation={extension(allow_templates)}] // CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_88]] col:20 referenced typename depth 0 index 0 T // CHECK-NEXT: | `-FunctionDecl [[ADDR_93]] line:34:1 also_before_non_template[implementation={extension(allow_templates)}] 'int (T)' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_90]] col:31 'T' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_95:0x[a-z0-9]*]] +// CHECK: | `-CompoundStmt [[ADDR_95:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_96:0x[a-z0-9]*]] // CHECK-NEXT: | `-IntegerLiteral [[ADDR_97:0x[a-z0-9]*]] 'int' 4 // CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_98:0x[a-z0-9]*]] col:5 implicit only_def // CHECK-NEXT: | |-NonTypeTemplateParmDecl [[ADDR_99:0x[a-z0-9]*]] col:15 'int' depth 0 index 0 V // CHECK-NEXT: | |-FunctionDecl [[ADDR_100:0x[a-z0-9]*]] col:5 only_def 'int ({{.*}})' -// CHECK-NEXT: | | `-OMPDeclareVariantAttr [[ADDR_101:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} +// CHECK-NEXT: | | `-attrDetails: OMPDeclareVariantAttr [[ADDR_101:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} // CHECK-NEXT: | | `-DeclRefExpr [[ADDR_102:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_103:0x[a-z0-9]*]] 'only_def[implementation={extension(allow_templates)}]' 'int ({{.*}})' // CHECK-NEXT: | `-FunctionDecl [[ADDR_104:0x[a-z0-9]*]] col:5 used only_def 'int ({{.*}})' // CHECK-NEXT: | |-TemplateArgument integral '0' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_105:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_105:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_106:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_107:0x[a-z0-9]*]] 'only_def[implementation={extension(allow_templates)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_108:0x[a-z0-9]*]] line:38:1 only_def[implementation={extension(allow_templates)}] // CHECK-NEXT: | |-NonTypeTemplateParmDecl [[ADDR_99]] col:15 'int' depth 0 index 0 V @@ -197,24 +197,24 @@ int test() { // CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_115:0x[a-z0-9]*]] col:20 referenced typename depth 0 index 0 T // CHECK-NEXT: | |-FunctionDecl [[ADDR_116:0x[a-z0-9]*]] prev [[ADDR_42]] line:44:5 also_after 'int (T)' // CHECK-NEXT: | | |-ParmVarDecl [[ADDR_117:0x[a-z0-9]*]] col:17 'T' -// CHECK-NEXT: | | |-CompoundStmt [[ADDR_118:0x[a-z0-9]*]] +// CHECK: | | |-CompoundStmt [[ADDR_118:0x[a-z0-9]*]] // CHECK-NEXT: | | | `-ReturnStmt [[ADDR_119:0x[a-z0-9]*]] // CHECK-NEXT: | | | `-IntegerLiteral [[ADDR_52]] 'int' 6 -// CHECK-NEXT: | | `-OMPDeclareVariantAttr [[ADDR_120:0x[a-z0-9]*]] <> Inherited Implicit implementation={extension(allow_templates)} +// CHECK-NEXT: | | `-attrDetails: OMPDeclareVariantAttr [[ADDR_120:0x[a-z0-9]*]] <> Inherited Implicit implementation={extension(allow_templates)} // CHECK-NEXT: | | `-DeclRefExpr [[ADDR_45]] 'int (T)' {{.*}}Function [[ADDR_46]] 'also_after[implementation={extension(allow_templates)}]' 'int (T)' // CHECK-NEXT: | `-Function [[ADDR_47]] 'also_after' 'int (char)' // CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_121:0x[a-z0-9]*]] line:48:5 also_after_mismatch // CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_122:0x[a-z0-9]*]] col:20 referenced typename depth 0 index 0 T // CHECK-NEXT: | |-FunctionDecl [[ADDR_123:0x[a-z0-9]*]] line:48:5 also_after_mismatch 'int (T)' // CHECK-NEXT: | | |-ParmVarDecl [[ADDR_124:0x[a-z0-9]*]] col:26 'T' -// CHECK-NEXT: | | `-CompoundStmt [[ADDR_125:0x[a-z0-9]*]] +// CHECK: | | `-CompoundStmt [[ADDR_125:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_126:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_127:0x[a-z0-9]*]] 'int' 0 // CHECK-NEXT: | `-FunctionDecl [[ADDR_128:0x[a-z0-9]*]] line:48:5 used also_after_mismatch 'int (int)' // CHECK-NEXT: | |-TemplateArgument type 'int' -// CHECK-NEXT: | | `-BuiltinType [[ADDR_129:0x[a-z0-9]*]] 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType [[ADDR_129:0x[a-z0-9]*]] 'int' // CHECK-NEXT: | |-ParmVarDecl [[ADDR_130:0x[a-z0-9]*]] col:26 'int' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_131:0x[a-z0-9]*]] +// CHECK: | `-CompoundStmt [[ADDR_131:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_132:0x[a-z0-9]*]] // CHECK-NEXT: | `-IntegerLiteral [[ADDR_127]] 'int' 0 // CHECK-NEXT: `-FunctionDecl [[ADDR_133:0x[a-z0-9]*]] line:52:5 test 'int ({{.*}})' diff --git a/clang/test/AST/ast-dump-openmp-begin-declare-variant_template_3.cpp b/clang/test/AST/ast-dump-openmp-begin-declare-variant_template_3.cpp index ad269506042c8..eb719888d46ff 100644 --- a/clang/test/AST/ast-dump-openmp-begin-declare-variant_template_3.cpp +++ b/clang/test/AST/ast-dump-openmp-begin-declare-variant_template_3.cpp @@ -1,261 +1,398 @@ -// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fopenmp -verify -ast-dump %s %std_cxx11-14 | FileCheck %s --check-prefixes=CHECK,CXX11 -// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fopenmp -verify -ast-dump %s %std_cxx17- | FileCheck %s --check-prefixes=CHECK,CXX17 +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fopenmp -verify -ast-dump %s | FileCheck %s // expected-no-diagnostics // PR47655 template struct S { - S(int, T *) {} + S(int, T *) {} }; template int also_before(T s) { - return 0; + return 0; } #pragma omp begin declare variant match(implementation = {extension(allow_templates)}) template int also_before(S s) { - // Ensure there is no error because this is never instantiated. - double t; - S q(1, &t); - return 1; + // Ensure there is no error because this is never instantiated. + double t; + S q(1, &t); + return 1; } template int special(S s) { - T t; - S q(0, &t); - return 0; + T t; + S q(0, &t); + return 0; } template int also_after(S s) { - // Ensure there is no error because this is never instantiated. - double t; - S q(2.0, &t); - return 2; + // Ensure there is no error because this is never instantiated. + double t; + S q(2.0, &t); + return 2; } #pragma omp end declare variant template int also_after(T s) { - return 0; + return 0; } int test() { - // Should return 0. - return also_before(0) + also_after(0) + also_before(0.) + also_after(0.) + special(S(0, 0)); + // Should return 0. + return also_before(0) + also_after(0) + also_before(0.) + also_after(0.) + special(S(0, 0)); } -// CHECK: |-ClassTemplateDecl [[ADDR_0:0x[a-z0-9]*]] <{{.*}}, line:7:1> line:5:30 S -// CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_1:0x[a-z0-9]*]] col:20 referenced typename depth 0 index 0 T -// CHECK-NEXT: | |-CXXRecordDecl [[ADDR_2:0x[a-z0-9]*]] line:5:30 struct S definition -// CHECK-NEXT: | | |-DefinitionData empty standard_layout trivially_copyable has_user_declared_ctor can_const_default_init -// CHECK-NEXT: | | | |-DefaultConstructor defaulted_is_constexpr -// CHECK-NEXT: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveConstructor exists simple trivial needs_implicit -// CHECK-NEXT: | | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveAssignment exists simple trivial needs_implicit -// CHECK-NEXT: | | | `-Destructor simple irrelevant trivial {{(constexpr )?}}needs_implicit -// CHECK-NEXT: | | |-CXXRecordDecl [[ADDR_3:0x[a-z0-9]*]] col:30 implicit referenced struct S -// CHECK-NEXT: | | `-CXXConstructorDecl [[ADDR_4:0x[a-z0-9]*]] col:3 S 'void (int, T *)' -// CHECK-NEXT: | | |-ParmVarDecl [[ADDR_5:0x[a-z0-9]*]] col:8 'int' -// CHECK-NEXT: | | |-ParmVarDecl [[ADDR_6:0x[a-z0-9]*]] col:13 'T *' -// CHECK-NEXT: | | `-CompoundStmt [[ADDR_7:0x[a-z0-9]*]] -// CHECK-NEXT: | |-ClassTemplateSpecializationDecl [[ADDR_8:0x[a-z0-9]*]] line:5:30 struct S definition -// CHECK-NEXT: | | |-DefinitionData pass_in_registers empty standard_layout trivially_copyable has_user_declared_ctor can_const_default_init -// CHECK-NEXT: | | | |-DefaultConstructor defaulted_is_constexpr -// CHECK-NEXT: | | | |-CopyConstructor simple trivial has_const_param implicit_has_const_param -// CHECK-NEXT: | | | |-MoveConstructor exists simple trivial -// CHECK-NEXT: | | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param -// CHECK-NEXT: | | | |-MoveAssignment exists simple trivial needs_implicit -// CHECK-NEXT: | | | `-Destructor simple irrelevant trivial -// CHECK-NEXT: | | |-TemplateArgument type 'int' -// CHECK-NEXT: | | | `-BuiltinType [[ADDR_9:0x[a-z0-9]*]] 'int' -// CHECK-NEXT: | | |-CXXRecordDecl [[ADDR_10:0x[a-z0-9]*]] col:30 implicit struct S -// CHECK-NEXT: | | |-CXXConstructorDecl [[ADDR_11:0x[a-z0-9]*]] col:3 used S 'void (int, int *)' -// CHECK-NEXT: | | | |-ParmVarDecl [[ADDR_12:0x[a-z0-9]*]] col:8 'int' -// CHECK-NEXT: | | | |-ParmVarDecl [[ADDR_13:0x[a-z0-9]*]] col:13 'int *' -// CHECK-NEXT: | | | `-CompoundStmt [[ADDR_7]] -// CHECK-NEXT: | | |-CXXConstructorDecl [[ADDR_14:0x[a-z0-9]*]] col:30 implicit constexpr S 'void (const S &)' inline default trivial noexcept-unevaluated [[ADDR_14]] -// CHECK-NEXT: | | | `-ParmVarDecl [[ADDR_15:0x[a-z0-9]*]] col:30 'const S &' -// CXX11-NEXT: | | |-CXXConstructorDecl [[ADDR_16:0x[a-z0-9]*]] col:30 implicit used constexpr S 'void (S &&) noexcept' inline default trivial -// CXX11-NEXT: | | | |-ParmVarDecl [[ADDR_17:0x[a-z0-9]*]] col:30 'S &&' -// CXX11-NEXT: | | | `-CompoundStmt [[ADDR_18:0x[a-z0-9]*]] -// CXX17-NEXT: | | |-CXXConstructorDecl [[ADDR_16:0x[a-z0-9]*]] col:30 implicit constexpr S 'void (S &&)' inline default trivial noexcept-unevaluated -// CXX17-NEXT: | | | `-ParmVarDecl [[ADDR_17:0x[a-z0-9]*]] col:30 'S &&' -// CHECK-NEXT: | | `-CXXDestructorDecl [[ADDR_19:0x[a-z0-9]*]] col:30 implicit referenced {{(constexpr )?}}~S 'void ({{.*}}) noexcept' inline default trivial -// CHECK-NEXT: | `-ClassTemplateSpecializationDecl [[ADDR_20:0x[a-z0-9]*]] line:5:30 struct S -// CHECK-NEXT: | `-TemplateArgument type 'double' -// CHECK-NEXT: | `-BuiltinType [[ADDR_21:0x[a-z0-9]*]] 'double' -// CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_22:0x[a-z0-9]*]] line:10:5 also_before -// CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_23:0x[a-z0-9]*]] col:20 referenced typename depth 0 index 0 T -// CHECK-NEXT: | |-FunctionDecl [[ADDR_24:0x[a-z0-9]*]] line:10:5 also_before 'int (T)' -// CHECK-NEXT: | | |-ParmVarDecl [[ADDR_25:0x[a-z0-9]*]] col:19 s 'T' -// CHECK-NEXT: | | |-CompoundStmt [[ADDR_26:0x[a-z0-9]*]] -// CHECK-NEXT: | | | `-ReturnStmt [[ADDR_27:0x[a-z0-9]*]] -// CHECK-NEXT: | | | `-IntegerLiteral [[ADDR_28:0x[a-z0-9]*]] 'int' 0 -// CHECK-NEXT: | | `-OMPDeclareVariantAttr [[ADDR_29:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} -// CHECK-NEXT: | | `-DeclRefExpr [[ADDR_30:0x[a-z0-9]*]] 'int (S)' {{.*}}Function [[ADDR_31:0x[a-z0-9]*]] 'also_before[implementation={extension(allow_templates)}]' 'int (S)' -// CHECK-NEXT: | |-FunctionDecl [[ADDR_32:0x[a-z0-9]*]] line:10:5 used also_before 'int (int)' -// CHECK-NEXT: | | |-TemplateArgument type 'int' -// CHECK-NEXT: | | | `-BuiltinType [[ADDR_9]] 'int' -// CHECK-NEXT: | | |-ParmVarDecl [[ADDR_33:0x[a-z0-9]*]] col:19 s 'int' -// CHECK-NEXT: | | `-CompoundStmt [[ADDR_34:0x[a-z0-9]*]] -// CHECK-NEXT: | | `-ReturnStmt [[ADDR_35:0x[a-z0-9]*]] -// CHECK-NEXT: | | `-IntegerLiteral [[ADDR_28]] 'int' 0 -// CHECK-NEXT: | `-FunctionDecl [[ADDR_36:0x[a-z0-9]*]] line:10:5 used also_before 'int (double)' -// CHECK-NEXT: | |-TemplateArgument type 'double' -// CHECK-NEXT: | | `-BuiltinType [[ADDR_21]] 'double' -// CHECK-NEXT: | |-ParmVarDecl [[ADDR_37:0x[a-z0-9]*]] col:19 s 'double' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_38:0x[a-z0-9]*]] -// CHECK-NEXT: | `-ReturnStmt [[ADDR_39:0x[a-z0-9]*]] -// CHECK-NEXT: | `-IntegerLiteral [[ADDR_28]] 'int' 0 -// CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_40:0x[a-z0-9]*]] line:16:1 also_before[implementation={extension(allow_templates)}] -// CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_41:0x[a-z0-9]*]] col:20 referenced typename depth 0 index 0 T -// CHECK-NEXT: | |-FunctionDecl [[ADDR_31]] line:16:1 referenced also_before[implementation={extension(allow_templates)}] 'int (S)' -// CHECK-NEXT: | | |-ParmVarDecl [[ADDR_42:0x[a-z0-9]*]] col:22 s 'S' -// CHECK-NEXT: | | `-CompoundStmt [[ADDR_43:0x[a-z0-9]*]] -// CHECK-NEXT: | | |-DeclStmt [[ADDR_44:0x[a-z0-9]*]] -// CHECK-NEXT: | | | `-VarDecl [[ADDR_45:0x[a-z0-9]*]] col:10 referenced t 'double' -// CHECK-NEXT: | | |-DeclStmt [[ADDR_46:0x[a-z0-9]*]] -// CHECK-NEXT: | | | `-VarDecl [[ADDR_47:0x[a-z0-9]*]] col:8 q 'S' callinit -// CHECK-NEXT: | | | `-ParenListExpr [[ADDR_48:0x[a-z0-9]*]] 'NULL TYPE' -// CHECK-NEXT: | | | |-IntegerLiteral [[ADDR_49:0x[a-z0-9]*]] 'int' 1 -// CHECK-NEXT: | | | `-UnaryOperator [[ADDR_50:0x[a-z0-9]*]] 'double *' prefix '&' cannot overflow -// CHECK-NEXT: | | | `-DeclRefExpr [[ADDR_51:0x[a-z0-9]*]] 'double' {{.*}}Var [[ADDR_45]] 't' 'double' -// CHECK-NEXT: | | `-ReturnStmt [[ADDR_52:0x[a-z0-9]*]] -// CHECK-NEXT: | | `-IntegerLiteral [[ADDR_53:0x[a-z0-9]*]] 'int' 1 -// CHECK-NEXT: | |-FunctionDecl [[ADDR_54:0x[a-z0-9]*]] line:16:1 also_before[implementation={extension(allow_templates)}] 'int (S)' -// CHECK-NEXT: | | |-TemplateArgument type 'int' -// CHECK-NEXT: | | | `-BuiltinType [[ADDR_9]] 'int' -// CHECK-NEXT: | | `-ParmVarDecl [[ADDR_55:0x[a-z0-9]*]] col:22 s 'S' -// CHECK-NEXT: | `-FunctionDecl [[ADDR_56:0x[a-z0-9]*]] line:16:1 also_before[implementation={extension(allow_templates)}] 'int (S)' -// CHECK-NEXT: | |-TemplateArgument type 'double' -// CHECK-NEXT: | | `-BuiltinType [[ADDR_21]] 'double' -// CHECK-NEXT: | `-ParmVarDecl [[ADDR_57:0x[a-z0-9]*]] col:22 s 'S' -// CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_58:0x[a-z0-9]*]] col:5 implicit special -// CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_59:0x[a-z0-9]*]] col:20 referenced typename depth 0 index 0 T -// CHECK-NEXT: | |-FunctionDecl [[ADDR_60:0x[a-z0-9]*]] col:5 special 'int (S)' -// CHECK-NEXT: | | |-ParmVarDecl [[ADDR_61:0x[a-z0-9]*]] col:18 s 'S' -// CHECK-NEXT: | | `-OMPDeclareVariantAttr [[ADDR_62:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} -// CHECK-NEXT: | | `-DeclRefExpr [[ADDR_63:0x[a-z0-9]*]] 'int (S)' {{.*}}Function [[ADDR_64:0x[a-z0-9]*]] 'special[implementation={extension(allow_templates)}]' 'int (S)' -// CHECK-NEXT: | `-FunctionDecl [[ADDR_65:0x[a-z0-9]*]] col:5 used special 'int (S)' -// CHECK-NEXT: | |-TemplateArgument type 'int' -// CHECK-NEXT: | | `-BuiltinType [[ADDR_9]] 'int' -// CHECK-NEXT: | |-ParmVarDecl [[ADDR_66:0x[a-z0-9]*]] col:18 s 'S' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_67:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} -// CHECK-NEXT: | `-DeclRefExpr [[ADDR_68:0x[a-z0-9]*]] 'int (S)' {{.*}}Function [[ADDR_69:0x[a-z0-9]*]] 'special[implementation={extension(allow_templates)}]' 'int (S)' -// CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_70:0x[a-z0-9]*]] line:23:1 special[implementation={extension(allow_templates)}] -// CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_59]] col:20 referenced typename depth 0 index 0 T -// CHECK-NEXT: | |-FunctionDecl [[ADDR_64]] line:23:1 referenced special[implementation={extension(allow_templates)}] 'int (S)' -// CHECK-NEXT: | | |-ParmVarDecl [[ADDR_61]] col:18 s 'S' -// CHECK-NEXT: | | `-CompoundStmt [[ADDR_71:0x[a-z0-9]*]] -// CHECK-NEXT: | | |-DeclStmt [[ADDR_72:0x[a-z0-9]*]] -// CHECK-NEXT: | | | `-VarDecl [[ADDR_73:0x[a-z0-9]*]] col:5 referenced t 'T' -// CHECK-NEXT: | | |-DeclStmt [[ADDR_74:0x[a-z0-9]*]] -// CHECK-NEXT: | | | `-VarDecl [[ADDR_75:0x[a-z0-9]*]] col:8 q 'S' callinit -// CHECK-NEXT: | | | `-ParenListExpr [[ADDR_76:0x[a-z0-9]*]] 'NULL TYPE' -// CHECK-NEXT: | | | |-IntegerLiteral [[ADDR_77:0x[a-z0-9]*]] 'int' 0 -// CHECK-NEXT: | | | `-UnaryOperator [[ADDR_78:0x[a-z0-9]*]] '' prefix '&' cannot overflow -// CHECK-NEXT: | | | `-DeclRefExpr [[ADDR_79:0x[a-z0-9]*]] 'T' {{.*}}Var [[ADDR_73]] 't' 'T' -// CHECK-NEXT: | | `-ReturnStmt [[ADDR_80:0x[a-z0-9]*]] -// CHECK-NEXT: | | `-IntegerLiteral [[ADDR_81:0x[a-z0-9]*]] 'int' 0 -// CHECK-NEXT: | `-FunctionDecl [[ADDR_69]] line:23:1 special[implementation={extension(allow_templates)}] 'int (S)' -// CHECK-NEXT: | |-TemplateArgument type 'int' -// CHECK-NEXT: | | `-BuiltinType [[ADDR_9]] 'int' -// CHECK-NEXT: | |-ParmVarDecl [[ADDR_82:0x[a-z0-9]*]] col:18 s 'S' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_83:0x[a-z0-9]*]] -// CHECK-NEXT: | |-DeclStmt [[ADDR_84:0x[a-z0-9]*]] -// CHECK-NEXT: | | `-VarDecl [[ADDR_85:0x[a-z0-9]*]] col:5 used t 'int' -// CHECK-NEXT: | |-DeclStmt [[ADDR_86:0x[a-z0-9]*]] -// CHECK-NEXT: | | `-VarDecl [[ADDR_87:0x[a-z0-9]*]] col:8 q 'S' callinit -// CHECK-NEXT: | | `-CXXConstructExpr [[ADDR_88:0x[a-z0-9]*]] 'S' 'void (int, int *)' -// CHECK-NEXT: | | |-IntegerLiteral [[ADDR_77]] 'int' 0 -// CHECK-NEXT: | | `-UnaryOperator [[ADDR_89:0x[a-z0-9]*]] 'int *' prefix '&' cannot overflow -// CHECK-NEXT: | | `-DeclRefExpr [[ADDR_90:0x[a-z0-9]*]] 'int' {{.*}}Var [[ADDR_85]] 't' 'int' -// CHECK-NEXT: | `-ReturnStmt [[ADDR_91:0x[a-z0-9]*]] -// CHECK-NEXT: | `-IntegerLiteral [[ADDR_81]] 'int' 0 -// CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_92:0x[a-z0-9]*]] col:5 implicit also_after -// CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_93:0x[a-z0-9]*]] col:20 referenced typename depth 0 index 0 T -// CHECK-NEXT: | `-FunctionDecl [[ADDR_94:0x[a-z0-9]*]] col:5 also_after 'int (S)' -// CHECK-NEXT: | |-ParmVarDecl [[ADDR_95:0x[a-z0-9]*]] col:21 s 'S' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_96:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} -// CHECK-NEXT: | `-DeclRefExpr [[ADDR_97:0x[a-z0-9]*]] 'int (S)' {{.*}}Function [[ADDR_98:0x[a-z0-9]*]] 'also_after[implementation={extension(allow_templates)}]' 'int (S)' -// CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_99:0x[a-z0-9]*]] line:29:1 also_after[implementation={extension(allow_templates)}] -// CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_93]] col:20 referenced typename depth 0 index 0 T -// CHECK-NEXT: | `-FunctionDecl [[ADDR_98]] line:29:1 also_after[implementation={extension(allow_templates)}] 'int (S)' -// CHECK-NEXT: | |-ParmVarDecl [[ADDR_95]] col:21 s 'S' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_100:0x[a-z0-9]*]] -// CHECK-NEXT: | |-DeclStmt [[ADDR_101:0x[a-z0-9]*]] -// CHECK-NEXT: | | `-VarDecl [[ADDR_102:0x[a-z0-9]*]] col:10 referenced t 'double' -// CHECK-NEXT: | |-DeclStmt [[ADDR_103:0x[a-z0-9]*]] -// CHECK-NEXT: | | `-VarDecl [[ADDR_104:0x[a-z0-9]*]] col:8 q 'S' callinit -// CHECK-NEXT: | | `-ParenListExpr [[ADDR_105:0x[a-z0-9]*]] 'NULL TYPE' -// CHECK-NEXT: | | |-FloatingLiteral [[ADDR_106:0x[a-z0-9]*]] 'double' 2.000000e+00 -// CHECK-NEXT: | | `-UnaryOperator [[ADDR_107:0x[a-z0-9]*]] 'double *' prefix '&' cannot overflow -// CHECK-NEXT: | | `-DeclRefExpr [[ADDR_108:0x[a-z0-9]*]] 'double' {{.*}}Var [[ADDR_102]] 't' 'double' -// CHECK-NEXT: | `-ReturnStmt [[ADDR_109:0x[a-z0-9]*]] -// CHECK-NEXT: | `-IntegerLiteral [[ADDR_110:0x[a-z0-9]*]] 'int' 2 -// CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_111:0x[a-z0-9]*]] line:38:5 also_after -// CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_112:0x[a-z0-9]*]] col:20 referenced typename depth 0 index 0 T -// CHECK-NEXT: | |-FunctionDecl [[ADDR_113:0x[a-z0-9]*]] line:38:5 also_after 'int (T)' -// CHECK-NEXT: | | |-ParmVarDecl [[ADDR_114:0x[a-z0-9]*]] col:18 s 'T' -// CHECK-NEXT: | | `-CompoundStmt [[ADDR_115:0x[a-z0-9]*]] -// CHECK-NEXT: | | `-ReturnStmt [[ADDR_116:0x[a-z0-9]*]] -// CHECK-NEXT: | | `-IntegerLiteral [[ADDR_117:0x[a-z0-9]*]] 'int' 0 -// CHECK-NEXT: | |-FunctionDecl [[ADDR_118:0x[a-z0-9]*]] line:38:5 used also_after 'int (int)' -// CHECK-NEXT: | | |-TemplateArgument type 'int' -// CHECK-NEXT: | | | `-BuiltinType [[ADDR_9]] 'int' -// CHECK-NEXT: | | |-ParmVarDecl [[ADDR_119:0x[a-z0-9]*]] col:18 s 'int' -// CHECK-NEXT: | | `-CompoundStmt [[ADDR_120:0x[a-z0-9]*]] -// CHECK-NEXT: | | `-ReturnStmt [[ADDR_121:0x[a-z0-9]*]] -// CHECK-NEXT: | | `-IntegerLiteral [[ADDR_117]] 'int' 0 -// CHECK-NEXT: | `-FunctionDecl [[ADDR_122:0x[a-z0-9]*]] line:38:5 used also_after 'int (double)' -// CHECK-NEXT: | |-TemplateArgument type 'double' -// CHECK-NEXT: | | `-BuiltinType [[ADDR_21]] 'double' -// CHECK-NEXT: | |-ParmVarDecl [[ADDR_123:0x[a-z0-9]*]] col:18 s 'double' -// CHECK-NEXT: | `-CompoundStmt [[ADDR_124:0x[a-z0-9]*]] -// CHECK-NEXT: | `-ReturnStmt [[ADDR_125:0x[a-z0-9]*]] -// CHECK-NEXT: | `-IntegerLiteral [[ADDR_117]] 'int' 0 -// CHECK-NEXT: `-FunctionDecl [[ADDR_126:0x[a-z0-9]*]] line:42:5 test 'int ({{.*}})' -// CHECK-NEXT: `-CompoundStmt [[ADDR_127:0x[a-z0-9]*]] -// CHECK-NEXT: `-ReturnStmt [[ADDR_128:0x[a-z0-9]*]] -// CXX11-NEXT: `-ExprWithCleanups [[ADDR_129:0x[a-z0-9]*]] 'int' -// CHECK-NEXT: `-BinaryOperator [[ADDR_130:0x[a-z0-9]*]] 'int' '+' -// CHECK-NEXT: |-BinaryOperator [[ADDR_131:0x[a-z0-9]*]] 'int' '+' -// CHECK-NEXT: | |-BinaryOperator [[ADDR_132:0x[a-z0-9]*]] 'int' '+' -// CHECK-NEXT: | | |-BinaryOperator [[ADDR_133:0x[a-z0-9]*]] 'int' '+' -// CHECK-NEXT: | | | |-CallExpr [[ADDR_134:0x[a-z0-9]*]] 'int' -// CHECK-NEXT: | | | | |-ImplicitCastExpr [[ADDR_135:0x[a-z0-9]*]] 'int (*)(int)' -// CHECK-NEXT: | | | | | `-DeclRefExpr [[ADDR_136:0x[a-z0-9]*]] 'int (int)' {{.*}}Function [[ADDR_32]] 'also_before' 'int (int)' (FunctionTemplate [[ADDR_22]] 'also_before') -// CHECK-NEXT: | | | | `-IntegerLiteral [[ADDR_137:0x[a-z0-9]*]] 'int' 0 -// CHECK-NEXT: | | | `-CallExpr [[ADDR_138:0x[a-z0-9]*]] 'int' -// CHECK-NEXT: | | | |-ImplicitCastExpr [[ADDR_139:0x[a-z0-9]*]] 'int (*)(int)' -// CHECK-NEXT: | | | | `-DeclRefExpr [[ADDR_140:0x[a-z0-9]*]] 'int (int)' {{.*}}Function [[ADDR_118]] 'also_after' 'int (int)' (FunctionTemplate [[ADDR_111]] 'also_after') -// CHECK-NEXT: | | | `-IntegerLiteral [[ADDR_141:0x[a-z0-9]*]] 'int' 0 -// CHECK-NEXT: | | `-CallExpr [[ADDR_142:0x[a-z0-9]*]] 'int' -// CHECK-NEXT: | | |-ImplicitCastExpr [[ADDR_143:0x[a-z0-9]*]] 'int (*)(double)' -// CHECK-NEXT: | | | `-DeclRefExpr [[ADDR_144:0x[a-z0-9]*]] 'int (double)' {{.*}}Function [[ADDR_36]] 'also_before' 'int (double)' (FunctionTemplate [[ADDR_22]] 'also_before') -// CHECK-NEXT: | | `-FloatingLiteral [[ADDR_145:0x[a-z0-9]*]] 'double' 0.000000e+00 -// CHECK-NEXT: | `-CallExpr [[ADDR_146:0x[a-z0-9]*]] 'int' -// CHECK-NEXT: | |-ImplicitCastExpr [[ADDR_147:0x[a-z0-9]*]] 'int (*)(double)' -// CHECK-NEXT: | | `-DeclRefExpr [[ADDR_148:0x[a-z0-9]*]] 'int (double)' {{.*}}Function [[ADDR_122]] 'also_after' 'int (double)' (FunctionTemplate [[ADDR_111]] 'also_after') -// CHECK-NEXT: | `-FloatingLiteral [[ADDR_149:0x[a-z0-9]*]] 'double' 0.000000e+00 -// CHECK-NEXT: `-PseudoObjectExpr [[ADDR_150:0x[a-z0-9]*]] 'int' -// CHECK-NEXT: |-CallExpr [[ADDR_151:0x[a-z0-9]*]] 'int' -// CHECK-NEXT: | |-ImplicitCastExpr [[ADDR_152:0x[a-z0-9]*]] 'int (*)(S)' -// CHECK-NEXT: | | `-DeclRefExpr [[ADDR_153:0x[a-z0-9]*]] 'int (S)' {{.*}}Function [[ADDR_65]] 'special' 'int (S)' (FunctionTemplate [[ADDR_58]] 'special') -// CXX11-NEXT: | `-CXXConstructExpr [[ADDR_154:0x[a-z0-9]*]] 'S' 'void (S &&) noexcept' elidable -// CXX11-NEXT: | `-MaterializeTemporaryExpr [[ADDR_155:0x[a-z0-9]*]] 'S' xvalue -// CHECK-NEXT: | `-CXXTemporaryObjectExpr [[ADDR_156:0x[a-z0-9]*]] 'S' 'void (int, int *)' -// CHECK-NEXT: | |-IntegerLiteral [[ADDR_157:0x[a-z0-9]*]] 'int' 0 -// CHECK-NEXT: | `-ImplicitCastExpr [[ADDR_158:0x[a-z0-9]*]] 'int *' -// CHECK-NEXT: | `-IntegerLiteral [[ADDR_159:0x[a-z0-9]*]] 'int' 0 -// CHECK-NEXT: `-CallExpr [[ADDR_160:0x[a-z0-9]*]] 'int' -// CHECK-NEXT: |-ImplicitCastExpr [[ADDR_161:0x[a-z0-9]*]] 'int (*)(S)' -// CHECK-NEXT: | `-DeclRefExpr [[ADDR_68]] 'int (S)' {{.*}}Function [[ADDR_69]] 'special[implementation={extension(allow_templates)}]' 'int (S)' -// CXX11-NEXT: `-CXXConstructExpr [[ADDR_162:0x[a-z0-9]*]] 'S' 'void (S &&) noexcept' elidable -// CXX11-NEXT: `-MaterializeTemporaryExpr [[ADDR_163:0x[a-z0-9]*]] 'S' xvalue -// CXX11-NEXT: `-CXXTemporaryObjectExpr [[ADDR_156]] 'S' 'void (int, int *)' -// CXX17-NEXT: `-CXXTemporaryObjectExpr [[ADDR_156]] 'S' 'void (int, int *)' -// CHECK-NEXT: |-IntegerLiteral [[ADDR_157]] 'int' 0 -// CHECK-NEXT: `-ImplicitCastExpr [[ADDR_158]] 'int *' -// CHECK-NEXT: `-IntegerLiteral [[ADDR_159]] 'int' 0 +//CHECK: |-ClassTemplateDecl {{.*}} S +//CHECK: | |-TemplateTypeParmDecl {{.*}} referenced typename depth 0 index 0 T +//CHECK: | |-CXXRecordDecl {{.*}} struct S definition +//CHECK: | | |-DefinitionData empty standard_layout trivially_copyable has_user_declared_ctor can_const_default_init +//CHECK: | | | |-DefaultConstructor defaulted_is_constexpr +//CHECK: | | | |-CopyConstructor simple trivial has_const_param needs_implicit implicit_has_const_param +//CHECK: | | | |-MoveConstructor exists simple trivial needs_implicit +//CHECK: | | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +//CHECK: | | | |-MoveAssignment exists simple trivial needs_implicit +//CHECK: | | | `-Destructor simple irrelevant trivial needs_implicit +//CHECK: | | |-CXXRecordDecl {{.*}} implicit referenced struct S +//CHECK: | | `-CXXConstructorDecl {{.*}} S 'void (int, T *)' implicit-inline +//CHECK: | | |-ParmVarDecl {{.*}} 'int' +//CHECK: | | | `-typeDetails: BuiltinType {{.*}} 'int' +//CHECK: | | |-ParmVarDecl {{.*}} 'T *' +//CHECK: | | | `-typeDetails: PointerType {{.*}} 'T *' dependent +//CHECK: | | | `-typeDetails: TemplateTypeParmType {{.*}} 'T' dependent depth 0 index 0 +//CHECK: | | | `-TemplateTypeParm {{.*}} 'T' +//CHECK: | | `-CompoundStmt {{.*}} +//CHECK: | |-ClassTemplateSpecializationDecl {{.*}} struct S definition implicit_instantiation +//CHECK: | | |-DefinitionData pass_in_registers empty standard_layout trivially_copyable has_user_declared_ctor can_const_default_init +//CHECK: | | | |-DefaultConstructor defaulted_is_constexpr +//CHECK: | | | |-CopyConstructor simple trivial has_const_param implicit_has_const_param +//CHECK: | | | |-MoveConstructor exists simple trivial +//CHECK: | | | |-CopyAssignment simple trivial has_const_param needs_implicit implicit_has_const_param +//CHECK: | | | |-MoveAssignment exists simple trivial needs_implicit +//CHECK: | | | `-Destructor simple irrelevant trivial +//CHECK: | | |-TemplateArgument type 'int' +//CHECK: | | | `-typeDetails: BuiltinType {{.*}} 'int' +//CHECK: | | |-CXXRecordDecl {{.*}} implicit struct S +//CHECK: | | |-CXXConstructorDecl {{.*}} used S 'void (int, int *)' implicit_instantiation implicit-inline instantiated_from {{.*}} +//CHECK: | | | |-ParmVarDecl {{.*}} 'int' +//CHECK: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +//CHECK: | | | |-ParmVarDecl {{.*}} 'int *' +//CHECK: | | | | `-typeDetails: PointerType {{.*}} 'int *' +//CHECK: | | | | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'int' sugar typename depth 0 index 0 T +//CHECK: | | | | |-ClassTemplateSpecialization {{.*}} 'S' +//CHECK: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +//CHECK: | | | `-CompoundStmt {{.*}} +//CHECK: | | |-CXXConstructorDecl {{.*}} implicit constexpr S 'void (const S &)' inline default trivial noexcept-unevaluated {{.*}} +//CHECK: | | | `-ParmVarDecl {{.*}} 'const S &' +//CHECK: | | | `-typeDetails: LValueReferenceType {{.*}} 'const S &' +//CHECK: | | | `-qualTypeDetail: QualType {{.*}} 'const S' const +//CHECK: | | | `-typeDetails: ElaboratedType {{.*}} 'S' sugar +//CHECK: | | | `-typeDetails: RecordType {{.*}} 'S' +//CHECK: | | | `-ClassTemplateSpecialization {{.*}} 'S' +//CHECK: | | |-CXXConstructorDecl {{.*}} implicit constexpr S 'void (S &&)' inline default trivial noexcept-unevaluated {{.*}} +//CHECK: | | | `-ParmVarDecl {{.*}} 'S &&' +//CHECK: | | | `-typeDetails: RValueReferenceType {{.*}} 'S &&' +//CHECK: | | | `-typeDetails: ElaboratedType {{.*}} 'S' sugar +//CHECK: | | | `-typeDetails: RecordType {{.*}} 'S' +//CHECK: | | | `-ClassTemplateSpecialization {{.*}} 'S' +//CHECK: | | `-CXXDestructorDecl {{.*}} implicit referenced ~S 'void () noexcept' inline default trivial +//CHECK: | `-ClassTemplateSpecializationDecl {{.*}} struct S +//CHECK: | `-TemplateArgument type 'double' +//CHECK: | `-typeDetails: BuiltinType {{.*}} 'double' +//CHECK: |-FunctionTemplateDecl {{.*}} also_before +//CHECK: | |-TemplateTypeParmDecl {{.*}} referenced typename depth 0 index 0 T +//CHECK: | |-FunctionDecl {{.*}} also_before 'int (T)' +//CHECK: | | |-ParmVarDecl {{.*}} s 'T' +//CHECK: | | | `-typeDetails: TemplateTypeParmType {{.*}} 'T' dependent depth 0 index 0 +//CHECK: | | | `-TemplateTypeParm {{.*}} 'T' +//CHECK: | | |-CompoundStmt {{.*}} +//CHECK: | | | `-ReturnStmt {{.*}} +//CHECK: | | | `-IntegerLiteral {{.*}} 'int' 0 +//CHECK: | | `-attrDetails: OMPDeclareVariantAttr {{.*}} <> Implicit implementation={extension(allow_templates)} +//CHECK: | | `-DeclRefExpr {{.*}} 'int (S)' Function {{.*}} 'also_before[implementation={extension(allow_templates)}]' 'int (S)' +//CHECK: | |-FunctionDecl {{.*}} used also_before 'int (int)' implicit_instantiation +//CHECK: | | |-TemplateArgument type 'int' +//CHECK: | | | `-typeDetails: BuiltinType {{.*}} 'int' +//CHECK: | | |-ParmVarDecl {{.*}} s 'int' +//CHECK: | | | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'int' sugar typename depth 0 index 0 T +//CHECK: | | | |-FunctionTemplate {{.*}} 'also_before' +//CHECK: | | | `-typeDetails: BuiltinType {{.*}} 'int' +//CHECK: | | `-CompoundStmt {{.*}} +//CHECK: | | `-ReturnStmt {{.*}} +//CHECK: | | `-IntegerLiteral {{.*}} 'int' 0 +//CHECK: | `-FunctionDecl {{.*}} used also_before 'int (double)' implicit_instantiation +//CHECK: | |-TemplateArgument type 'double' +//CHECK: | | `-typeDetails: BuiltinType {{.*}} 'double' +//CHECK: | |-ParmVarDecl {{.*}} s 'double' +//CHECK: | | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'double' sugar typename depth 0 index 0 T +//CHECK: | | |-FunctionTemplate {{.*}} 'also_before' +//CHECK: | | `-typeDetails: BuiltinType {{.*}} 'double' +//CHECK: | `-CompoundStmt {{.*}} +//CHECK: | `-ReturnStmt {{.*}} +//CHECK: | `-IntegerLiteral {{.*}} 'int' 0 +//CHECK: |-FunctionTemplateDecl {{.*}} also_before[implementation={extension(allow_templates)}] +//CHECK: | |-TemplateTypeParmDecl {{.*}} referenced typename depth 0 index 0 T +//CHECK: | |-FunctionDecl {{.*}} referenced also_before[implementation={extension(allow_templates)}] 'int (S)' +//CHECK: | | |-ParmVarDecl {{.*}} s 'S' +//CHECK: | | | `-typeDetails: ElaboratedType {{.*}} 'S' sugar dependent +//CHECK: | | | `-typeDetails: TemplateSpecializationType {{.*}} 'S' dependent +//CHECK: | | | |-name: 'S' qualified +//CHECK: | | | | `-ClassTemplateDecl {{.*}} S +//CHECK: | | | `-TemplateArgument type 'T':'type-parameter-0-0' +//CHECK: | | | `-typeDetails: TemplateTypeParmType {{.*}} 'T' dependent depth 0 index 0 +//CHECK: | | | `-TemplateTypeParm {{.*}} 'T' +//CHECK: | | `-CompoundStmt {{.*}} +//CHECK: | | |-DeclStmt {{.*}} +//CHECK: | | | `-VarDecl {{.*}} referenced t 'double' +//CHECK: | | | `-typeDetails: BuiltinType {{.*}} 'double' +//CHECK: | | |-DeclStmt {{.*}} +//CHECK: | | | `-VarDecl {{.*}} q 'S' callinit +//CHECK: | | | |-ParenListExpr {{.*}} 'NULL TYPE' +//CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 1 +//CHECK: | | | | `-UnaryOperator {{.*}} 'double *' prefix '&' cannot overflow +//CHECK: | | | | `-DeclRefExpr {{.*}} 'double' lvalue Var {{.*}} 't' 'double' +//CHECK: | | | `-typeDetails: ElaboratedType {{.*}} 'S' sugar dependent +//CHECK: | | | `-typeDetails: TemplateSpecializationType {{.*}} 'S' dependent +//CHECK: | | | |-name: 'S' qualified +//CHECK: | | | | `-ClassTemplateDecl {{.*}} S +//CHECK: | | | `-TemplateArgument type 'T':'type-parameter-0-0' +//CHECK: | | | `-typeDetails: TemplateTypeParmType {{.*}} 'T' dependent depth 0 index 0 +//CHECK: | | | `-TemplateTypeParm {{.*}} 'T' +//CHECK: | | `-ReturnStmt {{.*}} +//CHECK: | | `-IntegerLiteral {{.*}} 'int' 1 +//CHECK: | |-FunctionDecl {{.*}} also_before[implementation={extension(allow_templates)}] 'int (S)' implicit_instantiation +//CHECK: | | |-TemplateArgument type 'int' +//CHECK: | | | `-typeDetails: BuiltinType {{.*}} 'int' +//CHECK: | | `-ParmVarDecl {{.*}} s 'S' +//CHECK: | | `-typeDetails: ElaboratedType {{.*}} 'S' sugar +//CHECK: | | `-typeDetails: TemplateSpecializationType {{.*}} 'S' sugar +//CHECK: | | |-name: 'S' qualified +//CHECK: | | | `-ClassTemplateDecl {{.*}} S +//CHECK: | | |-TemplateArgument type 'int' +//CHECK: | | | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'int' sugar typename depth 0 index 0 T +//CHECK: | | | |-FunctionTemplate {{.*}} 'also_before[implementation={extension(allow_templates)}]' +//CHECK: | | | `-typeDetails: BuiltinType {{.*}} 'int' +//CHECK: | | `-typeDetails: RecordType {{.*}} 'S' +//CHECK: | | `-ClassTemplateSpecialization {{.*}} 'S' +//CHECK: | `-FunctionDecl {{.*}} also_before[implementation={extension(allow_templates)}] 'int (S)' implicit_instantiation +//CHECK: | |-TemplateArgument type 'double' +//CHECK: | | `-typeDetails: BuiltinType {{.*}} 'double' +//CHECK: | `-ParmVarDecl {{.*}} s 'S' +//CHECK: | `-typeDetails: ElaboratedType {{.*}} 'S' sugar +//CHECK: | `-typeDetails: TemplateSpecializationType {{.*}} 'S' sugar +//CHECK: | |-name: 'S' qualified +//CHECK: | | `-ClassTemplateDecl {{.*}} S +//CHECK: | |-TemplateArgument type 'double' +//CHECK: | | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'double' sugar typename depth 0 index 0 T +//CHECK: | | |-FunctionTemplate {{.*}} 'also_before[implementation={extension(allow_templates)}]' +//CHECK: | | `-typeDetails: BuiltinType {{.*}} 'double' +//CHECK: | `-typeDetails: RecordType {{.*}} 'S' +//CHECK: | `-ClassTemplateSpecialization {{.*}} 'S' +//CHECK: |-FunctionTemplateDecl {{.*}} implicit special +//CHECK: | |-TemplateTypeParmDecl {{.*}} referenced typename depth 0 index 0 T +//CHECK: | |-FunctionDecl {{.*}} special 'int (S)' +//CHECK: | | |-ParmVarDecl {{.*}} s 'S' +//CHECK: | | | `-typeDetails: ElaboratedType {{.*}} 'S' sugar dependent +//CHECK: | | | `-typeDetails: TemplateSpecializationType {{.*}} 'S' dependent +//CHECK: | | | |-name: 'S' qualified +//CHECK: | | | | `-ClassTemplateDecl {{.*}} S +//CHECK: | | | `-TemplateArgument type 'T':'type-parameter-0-0' +//CHECK: | | | `-typeDetails: TemplateTypeParmType {{.*}} 'T' dependent depth 0 index 0 +//CHECK: | | | `-TemplateTypeParm {{.*}} 'T' +//CHECK: | | `-attrDetails: OMPDeclareVariantAttr {{.*}} <> Implicit implementation={extension(allow_templates)} +//CHECK: | | `-DeclRefExpr {{.*}} 'int (S)' Function {{.*}} 'special[implementation={extension(allow_templates)}]' 'int (S)' +//CHECK: | `-FunctionDecl {{.*}} used special 'int (S)' implicit_instantiation +//CHECK: | |-TemplateArgument type 'int' +//CHECK: | | `-typeDetails: BuiltinType {{.*}} 'int' +//CHECK: | |-ParmVarDecl {{.*}} s 'S' +//CHECK: | | `-typeDetails: ElaboratedType {{.*}} 'S' sugar +//CHECK: | | `-typeDetails: TemplateSpecializationType {{.*}} 'S' sugar +//CHECK: | | |-name: 'S' qualified +//CHECK: | | | `-ClassTemplateDecl {{.*}} S +//CHECK: | | |-TemplateArgument type 'int' +//CHECK: | | | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'int' sugar typename depth 0 index 0 T +//CHECK: | | | |-FunctionTemplate {{.*}} 'special' +//CHECK: | | | `-typeDetails: BuiltinType {{.*}} 'int' +//CHECK: | | `-typeDetails: RecordType {{.*}} 'S' +//CHECK: | | `-ClassTemplateSpecialization {{.*}} 'S' +//CHECK: | `-attrDetails: OMPDeclareVariantAttr {{.*}} <> Implicit implementation={extension(allow_templates)} +//CHECK: | `-DeclRefExpr {{.*}} 'int (S)' Function {{.*}} 'special[implementation={extension(allow_templates)}]' 'int (S)' +//CHECK: |-FunctionTemplateDecl {{.*}} special[implementation={extension(allow_templates)}] +//CHECK: | |-TemplateTypeParmDecl {{.*}} referenced typename depth 0 index 0 T +//CHECK: | |-FunctionDecl {{.*}} referenced special[implementation={extension(allow_templates)}] 'int (S)' +//CHECK: | | |-ParmVarDecl {{.*}} s 'S' +//CHECK: | | | `-typeDetails: ElaboratedType {{.*}} 'S' sugar dependent +//CHECK: | | | `-typeDetails: TemplateSpecializationType {{.*}} 'S' dependent +//CHECK: | | | |-name: 'S' qualified +//CHECK: | | | | `-ClassTemplateDecl {{.*}} S +//CHECK: | | | `-TemplateArgument type 'T':'type-parameter-0-0' +//CHECK: | | | `-typeDetails: TemplateTypeParmType {{.*}} 'T' dependent depth 0 index 0 +//CHECK: | | | `-TemplateTypeParm {{.*}} 'T' +//CHECK: | | `-CompoundStmt {{.*}} +//CHECK: | | |-DeclStmt {{.*}} +//CHECK: | | | `-VarDecl {{.*}} referenced t 'T' +//CHECK: | | | `-typeDetails: TemplateTypeParmType {{.*}} 'T' dependent depth 0 index 0 +//CHECK: | | | `-TemplateTypeParm {{.*}} 'T' +//CHECK: | | |-DeclStmt {{.*}} +//CHECK: | | | `-VarDecl {{.*}} q 'S' callinit +//CHECK: | | | |-ParenListExpr {{.*}} 'NULL TYPE' +//CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +//CHECK: | | | | `-UnaryOperator {{.*}} '' prefix '&' cannot overflow +//CHECK: | | | | `-DeclRefExpr {{.*}} 'T' lvalue Var {{.*}} 't' 'T' +//CHECK: | | | `-typeDetails: ElaboratedType {{.*}} 'S' sugar dependent +//CHECK: | | | `-typeDetails: TemplateSpecializationType {{.*}} 'S' dependent +//CHECK: | | | |-name: 'S' qualified +//CHECK: | | | | `-ClassTemplateDecl {{.*}} S +//CHECK: | | | `-TemplateArgument type 'T':'type-parameter-0-0' +//CHECK: | | | `-typeDetails: TemplateTypeParmType {{.*}} 'T' dependent depth 0 index 0 +//CHECK: | | | `-TemplateTypeParm {{.*}} 'T' +//CHECK: | | `-ReturnStmt {{.*}} +//CHECK: | | `-IntegerLiteral {{.*}} 'int' 0 +//CHECK: | `-FunctionDecl {{.*}} special[implementation={extension(allow_templates)}] 'int (S)' implicit_instantiation +//CHECK: | |-TemplateArgument type 'int' +//CHECK: | | `-typeDetails: BuiltinType {{.*}} 'int' +//CHECK: | |-ParmVarDecl {{.*}} s 'S' +//CHECK: | | `-typeDetails: ElaboratedType {{.*}} 'S' sugar +//CHECK: | | `-typeDetails: TemplateSpecializationType {{.*}} 'S' sugar +//CHECK: | | |-name: 'S' qualified +//CHECK: | | | `-ClassTemplateDecl {{.*}} S +//CHECK: | | |-TemplateArgument type 'int' +//CHECK: | | | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'int' sugar typename depth 0 index 0 T +//CHECK: | | | |-FunctionTemplate {{.*}} 'special[implementation={extension(allow_templates)}]' +//CHECK: | | | `-typeDetails: BuiltinType {{.*}} 'int' +//CHECK: | | `-typeDetails: RecordType {{.*}} 'S' +//CHECK: | | `-ClassTemplateSpecialization {{.*}} 'S' +//CHECK: | `-CompoundStmt {{.*}} +//CHECK: | |-DeclStmt {{.*}} +//CHECK: | | `-VarDecl {{.*}} used t 'int' +//CHECK: | | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'int' sugar typename depth 0 index 0 T +//CHECK: | | |-Function {{.*}} 'special[implementation={extension(allow_templates)}]' 'int (S)' +//CHECK: | | `-typeDetails: BuiltinType {{.*}} 'int' +//CHECK: | |-DeclStmt {{.*}} +//CHECK: | | `-VarDecl {{.*}} q 'S' callinit +//CHECK: | | |-CXXConstructExpr {{.*}} 'S' 'void (int, int *)' +//CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +//CHECK: | | | `-UnaryOperator {{.*}} 'int *' prefix '&' cannot overflow +//CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 't' 'int' +//CHECK: | | `-typeDetails: ElaboratedType {{.*}} 'S' sugar +//CHECK: | | `-typeDetails: TemplateSpecializationType {{.*}} 'S' sugar +//CHECK: | | |-name: 'S' qualified +//CHECK: | | | `-ClassTemplateDecl {{.*}} S +//CHECK: | | |-TemplateArgument type 'int' +//CHECK: | | | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'int' sugar typename depth 0 index 0 T +//CHECK: | | | |-Function {{.*}} 'special[implementation={extension(allow_templates)}]' 'int (S)' +//CHECK: | | | `-typeDetails: BuiltinType {{.*}} 'int' +//CHECK: | | `-typeDetails: RecordType {{.*}} 'S' +//CHECK: | | `-ClassTemplateSpecialization {{.*}} 'S' +//CHECK: | `-ReturnStmt {{.*}} +//CHECK: | `-IntegerLiteral {{.*}} 'int' 0 +//CHECK: |-FunctionTemplateDecl {{.*}} implicit also_after +//CHECK: | |-TemplateTypeParmDecl {{.*}} referenced typename depth 0 index 0 T +//CHECK: | `-FunctionDecl {{.*}} also_after 'int (S)' +//CHECK: | |-ParmVarDecl {{.*}} s 'S' +//CHECK: | | `-typeDetails: ElaboratedType {{.*}} 'S' sugar dependent +//CHECK: | | `-typeDetails: TemplateSpecializationType {{.*}} 'S' dependent +//CHECK: | | |-name: 'S' qualified +//CHECK: | | | `-ClassTemplateDecl {{.*}} S +//CHECK: | | `-TemplateArgument type 'T':'type-parameter-0-0' +//CHECK: | | `-typeDetails: TemplateTypeParmType {{.*}} 'T' dependent depth 0 index 0 +//CHECK: | | `-TemplateTypeParm {{.*}} 'T' +//CHECK: | `-attrDetails: OMPDeclareVariantAttr {{.*}} <> Implicit implementation={extension(allow_templates)} +//CHECK: | `-DeclRefExpr {{.*}} 'int (S)' Function {{.*}} 'also_after[implementation={extension(allow_templates)}]' 'int (S)' +//CHECK: |-FunctionTemplateDecl {{.*}} also_after[implementation={extension(allow_templates)}] +//CHECK: | |-TemplateTypeParmDecl {{.*}} referenced typename depth 0 index 0 T +//CHECK: | `-FunctionDecl {{.*}} also_after[implementation={extension(allow_templates)}] 'int (S)' +//CHECK: | |-ParmVarDecl {{.*}} s 'S' +//CHECK: | | `-typeDetails: ElaboratedType {{.*}} 'S' sugar dependent +//CHECK: | | `-typeDetails: TemplateSpecializationType {{.*}} 'S' dependent +//CHECK: | | |-name: 'S' qualified +//CHECK: | | | `-ClassTemplateDecl {{.*}} S +//CHECK: | | `-TemplateArgument type 'T':'type-parameter-0-0' +//CHECK: | | `-typeDetails: TemplateTypeParmType {{.*}} 'T' dependent depth 0 index 0 +//CHECK: | | `-TemplateTypeParm {{.*}} 'T' +//CHECK: | `-CompoundStmt {{.*}} +//CHECK: | |-DeclStmt {{.*}} +//CHECK: | | `-VarDecl {{.*}} referenced t 'double' +//CHECK: | | `-typeDetails: BuiltinType {{.*}} 'double' +//CHECK: | |-DeclStmt {{.*}} +//CHECK: | | `-VarDecl {{.*}} q 'S' callinit +//CHECK: | | |-ParenListExpr {{.*}} 'NULL TYPE' +//CHECK: | | | |-FloatingLiteral {{.*}} 'double' 2.000000e+00 +//CHECK: | | | `-UnaryOperator {{.*}} 'double *' prefix '&' cannot overflow +//CHECK: | | | `-DeclRefExpr {{.*}} 'double' lvalue Var {{.*}} 't' 'double' +//CHECK: | | `-typeDetails: ElaboratedType {{.*}} 'S' sugar dependent +//CHECK: | | `-typeDetails: TemplateSpecializationType {{.*}} 'S' dependent +//CHECK: | | |-name: 'S' qualified +//CHECK: | | | `-ClassTemplateDecl {{.*}} S +//CHECK: | | `-TemplateArgument type 'T':'type-parameter-0-0' +//CHECK: | | `-typeDetails: TemplateTypeParmType {{.*}} 'T' dependent depth 0 index 0 +//CHECK: | | `-TemplateTypeParm {{.*}} 'T' +//CHECK: | `-ReturnStmt {{.*}} +//CHECK: | `-IntegerLiteral {{.*}} 'int' 2 +//CHECK: |-FunctionTemplateDecl {{.*}} also_after +//CHECK: | |-TemplateTypeParmDecl {{.*}} referenced typename depth 0 index 0 T +//CHECK: | |-FunctionDecl {{.*}} also_after 'int (T)' +//CHECK: | | |-ParmVarDecl {{.*}} s 'T' +//CHECK: | | | `-typeDetails: TemplateTypeParmType {{.*}} 'T' dependent depth 0 index 0 +//CHECK: | | | `-TemplateTypeParm {{.*}} 'T' +//CHECK: | | `-CompoundStmt {{.*}} +//CHECK: | | `-ReturnStmt {{.*}} +//CHECK: | | `-IntegerLiteral {{.*}} 'int' 0 +//CHECK: | |-FunctionDecl {{.*}} used also_after 'int (int)' implicit_instantiation +//CHECK: | | |-TemplateArgument type 'int' +//CHECK: | | | `-typeDetails: BuiltinType {{.*}} 'int' +//CHECK: | | |-ParmVarDecl {{.*}} s 'int' +//CHECK: | | | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'int' sugar typename depth 0 index 0 T +//CHECK: | | | |-FunctionTemplate {{.*}} 'also_after' +//CHECK: | | | `-typeDetails: BuiltinType {{.*}} 'int' +//CHECK: | | `-CompoundStmt {{.*}} +//CHECK: | | `-ReturnStmt {{.*}} +//CHECK: | | `-IntegerLiteral {{.*}} 'int' 0 +//CHECK: | `-FunctionDecl {{.*}} used also_after 'int (double)' implicit_instantiation +//CHECK: | |-TemplateArgument type 'double' +//CHECK: | | `-typeDetails: BuiltinType {{.*}} 'double' +//CHECK: | |-ParmVarDecl {{.*}} s 'double' +//CHECK: | | `-typeDetails: SubstTemplateTypeParmType {{.*}} 'double' sugar typename depth 0 index 0 T +//CHECK: | | |-FunctionTemplate {{.*}} 'also_after' +//CHECK: | | `-typeDetails: BuiltinType {{.*}} 'double' +//CHECK: | `-CompoundStmt {{.*}} +//CHECK: | `-ReturnStmt {{.*}} +//CHECK: | `-IntegerLiteral {{.*}} 'int' 0 +//CHECK: `-FunctionDecl {{.*}} test 'int ()' +//CHECK: `-CompoundStmt {{.*}} +//CHECK: `-ReturnStmt {{.*}} +//CHECK: `-BinaryOperator {{.*}} 'int' '+' +//CHECK: |-BinaryOperator {{.*}} 'int' '+' +//CHECK: | |-BinaryOperator {{.*}} 'int' '+' +//CHECK: | | |-BinaryOperator {{.*}} 'int' '+' +//CHECK: | | | |-CallExpr {{.*}} 'int' +//CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int (*)(int)' +//CHECK: | | | | | `-DeclRefExpr {{.*}} 'int (int)' lvalue Function {{.*}} 'also_before' 'int (int)' (FunctionTemplate {{.*}} 'also_before') +//CHECK: | | | | `-IntegerLiteral {{.*}} 'int' 0 +//CHECK: | | | `-CallExpr {{.*}} 'int' +//CHECK: | | | |-ImplicitCastExpr {{.*}} 'int (*)(int)' +//CHECK: | | | | `-DeclRefExpr {{.*}} 'int (int)' lvalue Function {{.*}} 'also_after' 'int (int)' (FunctionTemplate {{.*}} 'also_after') +//CHECK: | | | `-IntegerLiteral {{.*}} 'int' 0 +//CHECK: | | `-CallExpr {{.*}} 'int' +//CHECK: | | |-ImplicitCastExpr {{.*}} 'int (*)(double)' +//CHECK: | | | `-DeclRefExpr {{.*}} 'int (double)' lvalue Function {{.*}} 'also_before' 'int (double)' (FunctionTemplate {{.*}} 'also_before') +//CHECK: | | `-FloatingLiteral {{.*}} 'double' 0.000000e+00 +//CHECK: | `-CallExpr {{.*}} 'int' +//CHECK: | |-ImplicitCastExpr {{.*}} 'int (*)(double)' +//CHECK: | | `-DeclRefExpr {{.*}} 'int (double)' lvalue Function {{.*}} 'also_after' 'int (double)' (FunctionTemplate {{.*}} 'also_after') +//CHECK: | `-FloatingLiteral {{.*}} 'double' 0.000000e+00 +//CHECK: `-PseudoObjectExpr {{.*}} 'int' +//CHECK: |-CallExpr {{.*}} 'int' +//CHECK: | |-ImplicitCastExpr {{.*}} 'int (*)(S)' +//CHECK: | | `-DeclRefExpr {{.*}} 'int (S)' lvalue Function {{.*}} 'special' 'int (S)' (FunctionTemplate {{.*}} 'special') +//CHECK: | `-CXXTemporaryObjectExpr {{.*}} 'S' 'void (int, int *)' +//CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +//CHECK: | `-ImplicitCastExpr {{.*}} 'int *' +//CHECK: | `-IntegerLiteral {{.*}} 'int' 0 +//CHECK: `-CallExpr {{.*}} 'int' +//CHECK: |-ImplicitCastExpr {{.*}} 'int (*)(S)' +//CHECK: | `-DeclRefExpr {{.*}} 'int (S)' Function {{.*}} 'special[implementation={extension(allow_templates)}]' 'int (S)' +//CHECK: `-CXXTemporaryObjectExpr {{.*}} 'S' 'void (int, int *)' +//CHECK: |-IntegerLiteral {{.*}} 'int' 0 +//CHECK: `-ImplicitCastExpr {{.*}} 'int *' +//CHECK: `-IntegerLiteral {{.*}} 'int' 0 \ No newline at end of file diff --git a/clang/test/AST/ast-dump-openmp-begin-declare-variant_template_4.cpp b/clang/test/AST/ast-dump-openmp-begin-declare-variant_template_4.cpp index 831b353e3ae7e..a81a8052a33e7 100644 --- a/clang/test/AST/ast-dump-openmp-begin-declare-variant_template_4.cpp +++ b/clang/test/AST/ast-dump-openmp-begin-declare-variant_template_4.cpp @@ -37,9 +37,9 @@ int test() { // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_6:0x[a-z0-9]*]] 'int' 0 // CHECK-NEXT: | `-FunctionDecl [[ADDR_7:0x[a-z0-9]*]] line:6:5 used template_number_mismatch_1 'int ({{.*}})' // CHECK-NEXT: | |-TemplateArgument type 'int' -// CHECK-NEXT: | | `-BuiltinType [[ADDR_8:0x[a-z0-9]*]] 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType [[ADDR_8:0x[a-z0-9]*]] 'int' // CHECK-NEXT: | |-TemplateArgument type 'float' -// CHECK-NEXT: | | `-BuiltinType [[ADDR_9:0x[a-z0-9]*]] 'float' +// CHECK-NEXT: | | `-typeDetails: BuiltinType [[ADDR_9:0x[a-z0-9]*]] 'float' // CHECK-NEXT: | `-CompoundStmt [[ADDR_10:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_11:0x[a-z0-9]*]] // CHECK-NEXT: | `-IntegerLiteral [[ADDR_6]] 'int' 0 @@ -53,7 +53,7 @@ int test() { // CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_19:0x[a-z0-9]*]] col:5 implicit template_number_mismatch_1 // CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_20:0x[a-z0-9]*]] col:20 typename depth 0 index 0 Q // CHECK-NEXT: | `-FunctionDecl [[ADDR_21:0x[a-z0-9]*]] col:5 template_number_mismatch_1 'int ({{.*}})' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_22:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_22:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_23:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_24:0x[a-z0-9]*]] 'template_number_mismatch_1[implementation={extension(allow_templates)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_25:0x[a-z0-9]*]] line:17:1 template_number_mismatch_1[implementation={extension(allow_templates)}] // CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_20]] col:20 typename depth 0 index 0 Q @@ -64,12 +64,12 @@ int test() { // CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_29:0x[a-z0-9]*]] col:5 implicit template_number_mismatch_2 // CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_30:0x[a-z0-9]*]] col:20 typename depth 0 index 0 Q // CHECK-NEXT: | |-FunctionDecl [[ADDR_31:0x[a-z0-9]*]] col:5 template_number_mismatch_2 'int ({{.*}})' -// CHECK-NEXT: | | `-OMPDeclareVariantAttr [[ADDR_32:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} +// CHECK-NEXT: | | `-attrDetails: OMPDeclareVariantAttr [[ADDR_32:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} // CHECK-NEXT: | | `-DeclRefExpr [[ADDR_33:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_34:0x[a-z0-9]*]] 'template_number_mismatch_2[implementation={extension(allow_templates)}]' 'int ({{.*}})' // CHECK-NEXT: | `-FunctionDecl [[ADDR_35:0x[a-z0-9]*]] col:5 used template_number_mismatch_2 'int ({{.*}})' // CHECK-NEXT: | |-TemplateArgument type 'double' -// CHECK-NEXT: | | `-BuiltinType [[ADDR_36:0x[a-z0-9]*]] 'double' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_37:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} +// CHECK-NEXT: | | `-typeDetails: BuiltinType [[ADDR_36:0x[a-z0-9]*]] 'double' +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_37:0x[a-z0-9]*]] <> Implicit implementation={extension(allow_templates)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_38:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_39:0x[a-z0-9]*]] 'template_number_mismatch_2[implementation={extension(allow_templates)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionTemplateDecl [[ADDR_40:0x[a-z0-9]*]] line:21:1 template_number_mismatch_2[implementation={extension(allow_templates)}] // CHECK-NEXT: | |-TemplateTypeParmDecl [[ADDR_30]] col:20 typename depth 0 index 0 Q @@ -79,7 +79,7 @@ int test() { // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_43:0x[a-z0-9]*]] 'int' 0 // CHECK-NEXT: | `-FunctionDecl [[ADDR_39]] line:21:1 template_number_mismatch_2[implementation={extension(allow_templates)}] 'int ({{.*}})' // CHECK-NEXT: | |-TemplateArgument type 'double' -// CHECK-NEXT: | | `-BuiltinType [[ADDR_36]] 'double' +// CHECK-NEXT: | | `-typeDetails: BuiltinType [[ADDR_36]] 'double' // CHECK-NEXT: | `-CompoundStmt [[ADDR_44:0x[a-z0-9]*]] // CHECK-NEXT: | `-ReturnStmt [[ADDR_45:0x[a-z0-9]*]] // CHECK-NEXT: | `-IntegerLiteral [[ADDR_43]] 'int' 0 diff --git a/clang/test/AST/ast-dump-openmp-cancel.c b/clang/test/AST/ast-dump-openmp-cancel.c index ce695b1507921..2879feb45dff5 100644 --- a/clang/test/AST/ast-dump-openmp-cancel.c +++ b/clang/test/AST/ast-dump-openmp-cancel.c @@ -16,5 +16,5 @@ void test(void) { // CHECK-NEXT: |-CompoundStmt {{.*}} // CHECK-NEXT: | `-OMPCancelDirective {{.*}} openmp_standalone_directive // CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-cancel.c:4:1) *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-cancel.c:4:1) *const restrict' diff --git a/clang/test/AST/ast-dump-openmp-cancellation-point.c b/clang/test/AST/ast-dump-openmp-cancellation-point.c index 62cd236950805..37315b3ffba57 100644 --- a/clang/test/AST/ast-dump-openmp-cancellation-point.c +++ b/clang/test/AST/ast-dump-openmp-cancellation-point.c @@ -16,5 +16,5 @@ void test(void) { // CHECK-NEXT: |-CompoundStmt {{.*}} // CHECK-NEXT: | `-OMPCancellationPointDirective {{.*}} openmp_standalone_directive // CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-cancellation-point.c:4:1) *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-cancellation-point.c:4:1) *const restrict' diff --git a/clang/test/AST/ast-dump-openmp-declare-variant-extensions.c b/clang/test/AST/ast-dump-openmp-declare-variant-extensions.c index c2a863b16b3f7..9f79a7aeb0bd8 100644 --- a/clang/test/AST/ast-dump-openmp-declare-variant-extensions.c +++ b/clang/test/AST/ast-dump-openmp-declare-variant-extensions.c @@ -124,82 +124,82 @@ int test(void) { // CHECK-NEXT: | |-CompoundStmt [[ADDR_35:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_36:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_37:0x[a-z0-9]*]] 'int' 3 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_38:0x[a-z0-9]*]] Implicit implementation={extension(match_any)}, device={kind(cpu, gpu)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_38:0x[a-z0-9]*]] Implicit implementation={extension(match_any)}, device={kind(cpu, gpu)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_39:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_0]] 'picked1' 'int ({{.*}})' non_odr_use_unevaluated // CHECK-NEXT: |-FunctionDecl [[ADDR_40:0x[a-z0-9]*]] col:5 used base2 'int ({{.*}})' // CHECK-NEXT: | |-CompoundStmt [[ADDR_41:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_42:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_43:0x[a-z0-9]*]] 'int' 4 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_44:0x[a-z0-9]*]] Implicit implementation={extension(match_none)}, device={kind(gpu, fpga)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_44:0x[a-z0-9]*]] Implicit implementation={extension(match_none)}, device={kind(gpu, fpga)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_45:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_4]] 'picked2' 'int ({{.*}})' non_odr_use_unevaluated // CHECK-NEXT: |-FunctionDecl [[ADDR_46:0x[a-z0-9]*]] col:5 used base3 'int ({{.*}})' // CHECK-NEXT: | |-CompoundStmt [[ADDR_47:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_48:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_49:0x[a-z0-9]*]] 'int' 5 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_50:0x[a-z0-9]*]] Implicit implementation={vendor(pgi), extension(match_any)}, device={kind(cpu, gpu)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_50:0x[a-z0-9]*]] Implicit implementation={vendor(pgi), extension(match_any)}, device={kind(cpu, gpu)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_51:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_8]] 'picked3' 'int ({{.*}})' non_odr_use_unevaluated // CHECK-NEXT: |-FunctionDecl [[ADDR_52:0x[a-z0-9]*]] col:5 used base4 'int ({{.*}})' // CHECK-NEXT: | |-CompoundStmt [[ADDR_53:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_54:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_55:0x[a-z0-9]*]] 'int' 6 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_56:0x[a-z0-9]*]] Implicit user={condition(0)}, implementation={extension(match_none)}, device={kind(gpu, fpga)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_56:0x[a-z0-9]*]] Implicit user={condition(0)}, implementation={extension(match_none)}, device={kind(gpu, fpga)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_57:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_9]] 'picked4' 'int ({{.*}})' non_odr_use_unevaluated // CHECK-NEXT: |-FunctionDecl [[ADDR_58:0x[a-z0-9]*]] col:5 used base5 'int ({{.*}})' // CHECK-NEXT: | |-CompoundStmt [[ADDR_59:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_60:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_61:0x[a-z0-9]*]] 'int' 7 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_62:0x[a-z0-9]*]] Implicit user={condition(1)}, implementation={extension(match_all)}, device={kind(cpu)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_62:0x[a-z0-9]*]] Implicit user={condition(1)}, implementation={extension(match_all)}, device={kind(cpu)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_63:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_10]] 'picked5' 'int ({{.*}})' non_odr_use_unevaluated // CHECK-NEXT: |-FunctionDecl [[ADDR_64:0x[a-z0-9]*]] col:5 used base6 'int ({{.*}})' // CHECK-NEXT: | |-CompoundStmt [[ADDR_65:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_66:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_67:0x[a-z0-9]*]] 'int' 0 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_68:0x[a-z0-9]*]] Implicit implementation={extension(match_any)}, device={kind(gpu, fpga)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_68:0x[a-z0-9]*]] Implicit implementation={extension(match_any)}, device={kind(gpu, fpga)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_69:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_22]] 'not_picked1' 'int ({{.*}})' non_odr_use_unevaluated // CHECK-NEXT: |-FunctionDecl [[ADDR_70:0x[a-z0-9]*]] col:5 used base7 'int ({{.*}})' // CHECK-NEXT: | |-CompoundStmt [[ADDR_71:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_72:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_73:0x[a-z0-9]*]] 'int' 0 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_74:0x[a-z0-9]*]] Implicit implementation={extension(match_none)}, device={kind(gpu, cpu)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_74:0x[a-z0-9]*]] Implicit implementation={extension(match_none)}, device={kind(gpu, cpu)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_75:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_26]] 'not_picked2' 'int ({{.*}})' non_odr_use_unevaluated // CHECK-NEXT: |-FunctionDecl [[ADDR_76:0x[a-z0-9]*]] col:5 used base8 'int ({{.*}})' // CHECK-NEXT: | |-CompoundStmt [[ADDR_77:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_78:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_79:0x[a-z0-9]*]] 'int' 0 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_80:0x[a-z0-9]*]] Implicit implementation={vendor(llvm), extension(match_any)}, device={kind(fpga, gpu)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_80:0x[a-z0-9]*]] Implicit implementation={vendor(llvm), extension(match_any)}, device={kind(fpga, gpu)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_81:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_30]] 'not_picked3' 'int ({{.*}})' non_odr_use_unevaluated // CHECK-NEXT: |-FunctionDecl [[ADDR_82:0x[a-z0-9]*]] col:5 used base9 'int ({{.*}})' // CHECK-NEXT: | |-CompoundStmt [[ADDR_83:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_84:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_85:0x[a-z0-9]*]] 'int' 0 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_86:0x[a-z0-9]*]] Implicit user={condition(1)}, implementation={extension(match_none)}, device={kind(gpu, fpga)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_86:0x[a-z0-9]*]] Implicit user={condition(1)}, implementation={extension(match_none)}, device={kind(gpu, fpga)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_87:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_31]] 'not_picked4' 'int ({{.*}})' non_odr_use_unevaluated // CHECK-NEXT: |-FunctionDecl [[ADDR_88:0x[a-z0-9]*]] col:5 used base10 'int ({{.*}})' // CHECK-NEXT: | |-CompoundStmt [[ADDR_89:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_90:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_91:0x[a-z0-9]*]] 'int' 0 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_92:0x[a-z0-9]*]] Implicit user={condition(1)}, implementation={extension(match_all)}, device={kind(cpu, gpu)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_92:0x[a-z0-9]*]] Implicit user={condition(1)}, implementation={extension(match_all)}, device={kind(cpu, gpu)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_93:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_32]] 'not_picked5' 'int ({{.*}})' non_odr_use_unevaluated // CHECK-NEXT: |-FunctionDecl [[ADDR_94:0x[a-z0-9]*]] col:5 used base11 'int ({{.*}})' // CHECK-NEXT: | |-CompoundStmt [[ADDR_95:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_96:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_97:0x[a-z0-9]*]] 'int' 0 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_98:0x[a-z0-9]*]] Implicit implementation={extension(match_any)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_98:0x[a-z0-9]*]] Implicit implementation={extension(match_any)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_99:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_33]] 'not_picked6' 'int ({{.*}})' non_odr_use_unevaluated // CHECK-NEXT: |-FunctionDecl [[ADDR_100:0x[a-z0-9]*]] col:5 used base12 'int ({{.*}})' // CHECK-NEXT: | |-CompoundStmt [[ADDR_101:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_102:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_103:0x[a-z0-9]*]] 'int' 8 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_104:0x[a-z0-9]*]] Implicit implementation={extension(match_all)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_104:0x[a-z0-9]*]] Implicit implementation={extension(match_all)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_105:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_14]] 'picked6' 'int ({{.*}})' non_odr_use_unevaluated // CHECK-NEXT: |-FunctionDecl [[ADDR_106:0x[a-z0-9]*]] col:5 used base13 'int ({{.*}})' // CHECK-NEXT: | |-CompoundStmt [[ADDR_107:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_108:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_109:0x[a-z0-9]*]] 'int' 9 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_110:0x[a-z0-9]*]] Implicit implementation={extension(match_none)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_110:0x[a-z0-9]*]] Implicit implementation={extension(match_none)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_111:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_18]] 'picked7' 'int ({{.*}})' non_odr_use_unevaluated // CHECK-NEXT: |-FunctionDecl [[ADDR_112:0x[a-z0-9]*]] col:5 implicit used overloaded1 'int ({{.*}})' -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_113:0x[a-z0-9]*]] <> Implicit implementation={extension(match_any)}, device={kind(cpu, gpu)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_113:0x[a-z0-9]*]] <> Implicit implementation={extension(match_any)}, device={kind(cpu, gpu)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_114:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_115:0x[a-z0-9]*]] 'overloaded1[implementation={extension(match_any)}, device={kind(cpu, gpu)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_115]] col:1 overloaded1[implementation={extension(match_any)}, device={kind(cpu, gpu)}] 'int ({{.*}})' // CHECK-NEXT: | `-CompoundStmt [[ADDR_116:0x[a-z0-9]*]] @@ -209,7 +209,7 @@ int test(void) { // CHECK-NEXT: | |-CompoundStmt [[ADDR_120:0x[a-z0-9]*]] // CHECK-NEXT: | | `-ReturnStmt [[ADDR_121:0x[a-z0-9]*]] // CHECK-NEXT: | | `-IntegerLiteral [[ADDR_122:0x[a-z0-9]*]] 'int' 1 -// CHECK-NEXT: | `-OMPDeclareVariantAttr [[ADDR_123:0x[a-z0-9]*]] <> Implicit implementation={extension(match_none)}, device={kind(fpga, gpu)} +// CHECK-NEXT: | `-attrDetails: OMPDeclareVariantAttr [[ADDR_123:0x[a-z0-9]*]] <> Implicit implementation={extension(match_none)}, device={kind(fpga, gpu)} // CHECK-NEXT: | `-DeclRefExpr [[ADDR_124:0x[a-z0-9]*]] 'int ({{.*}})' {{.*}}Function [[ADDR_125:0x[a-z0-9]*]] 'overloaded2[implementation={extension(match_none)}, device={kind(fpga, gpu)}]' 'int ({{.*}})' // CHECK-NEXT: |-FunctionDecl [[ADDR_125]] col:1 overloaded2[implementation={extension(match_none)}, device={kind(fpga, gpu)}] 'int ({{.*}})' // CHECK-NEXT: | `-CompoundStmt [[ADDR_126:0x[a-z0-9]*]] diff --git a/clang/test/AST/ast-dump-openmp-distribute-parallel-for-simd.c b/clang/test/AST/ast-dump-openmp-distribute-parallel-for-simd.c index 672607fa90670..deab24cfc07f5 100644 --- a/clang/test/AST/ast-dump-openmp-distribute-parallel-for-simd.c +++ b/clang/test/AST/ast-dump-openmp-distribute-parallel-for-simd.c @@ -36,230 +36,394 @@ void test_five(int x, int y, int z) { } // CHECK: TranslationUnitDecl {{.*}} <> -// CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-distribute-parallel-for-simd.c:3:1, line:7:1> line:3:6 test_one 'void (int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPDistributeParallelForSimdDirective {{.*}} -// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __int128_t '__int128' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} '__int128' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __uint128_t 'unsigned __int128' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'unsigned __int128' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __NSConstantString 'struct __NSConstantString_tag' +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'struct __NSConstantString_tag' +// CHECK-NEXT: | `-Record {{.*}} '__NSConstantString_tag' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __builtin_ms_va_list 'char *' +// CHECK-NEXT: | `-typeDetails: PointerType {{.*}} 'char *' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'char' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __builtin_va_list 'struct __va_list_tag[1]' +// CHECK-NEXT: | `-typeDetails: ConstantArrayType {{.*}} 'struct __va_list_tag[1]' 1 +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'struct __va_list_tag' +// CHECK-NEXT: | `-Record {{.*}} '__va_list_tag' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_one 'void (int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPDistributeParallelForSimdDirective {{.*}} +// CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:26 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPDistributeParallelForSimdDirective {{.*}} -// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:4:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:4:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_two 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPDistributeParallelForSimdDirective {{.*}} +// CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:21 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:28 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPDistributeParallelForSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:10:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:10:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_three 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPDistributeParallelForSimdDirective {{.*}} +// CHECK-NEXT: | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | |-value: Int 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPDistributeParallelForSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 2 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:17:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:17:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_four 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPDistributeParallelForSimdDirective {{.*}} +// CHECK-NEXT: | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | |-value: Int 2 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:34 used z 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: `-OMPDistributeParallelForSimdDirective {{.*}} -// CHECK-NEXT: |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | |-value: Int 2 -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:24:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:24:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: `-FunctionDecl {{.*}} test_five 'void (int, int, int)' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used z 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: `-CompoundStmt {{.*}} +// CHECK-NEXT: `-OMPDistributeParallelForSimdDirective {{.*}} +// CHECK-NEXT: |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | |-value: Int 2 +// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: `-CapturedStmt {{.*}} // CHECK-NEXT: |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | |-ForStmt {{.*}} +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | `-ForStmt {{.*}} +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | `-ForStmt {{.*}} +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-NullStmt {{.*}} -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | `-NullStmt {{.*}} +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:31:1) *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:31:1) *' +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | `-Record {{.*}} +// CHECK-NEXT: | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' diff --git a/clang/test/AST/ast-dump-openmp-distribute-parallel-for.c b/clang/test/AST/ast-dump-openmp-distribute-parallel-for.c index 8eedf8ac8bc58..8f7ff6381fbec 100644 --- a/clang/test/AST/ast-dump-openmp-distribute-parallel-for.c +++ b/clang/test/AST/ast-dump-openmp-distribute-parallel-for.c @@ -36,230 +36,394 @@ void test_five(int x, int y, int z) { } // CHECK: TranslationUnitDecl {{.*}} <> -// CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-distribute-parallel-for.c:3:1, line:7:1> line:3:6 test_one 'void (int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPDistributeParallelForDirective {{.*}} -// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __int128_t '__int128' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} '__int128' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __uint128_t 'unsigned __int128' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'unsigned __int128' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __NSConstantString 'struct __NSConstantString_tag' +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'struct __NSConstantString_tag' +// CHECK-NEXT: | `-Record {{.*}} '__NSConstantString_tag' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __builtin_ms_va_list 'char *' +// CHECK-NEXT: | `-typeDetails: PointerType {{.*}} 'char *' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'char' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __builtin_va_list 'struct __va_list_tag[1]' +// CHECK-NEXT: | `-typeDetails: ConstantArrayType {{.*}} 'struct __va_list_tag[1]' 1 +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'struct __va_list_tag' +// CHECK-NEXT: | `-Record {{.*}} '__va_list_tag' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_one 'void (int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPDistributeParallelForDirective {{.*}} +// CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:26 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPDistributeParallelForDirective {{.*}} -// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:4:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:4:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_two 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPDistributeParallelForDirective {{.*}} +// CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:21 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:28 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPDistributeParallelForDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:10:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:10:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_three 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPDistributeParallelForDirective {{.*}} +// CHECK-NEXT: | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | |-value: Int 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPDistributeParallelForDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 2 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:17:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:17:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_four 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPDistributeParallelForDirective {{.*}} +// CHECK-NEXT: | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | |-value: Int 2 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:34 used z 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: `-OMPDistributeParallelForDirective {{.*}} -// CHECK-NEXT: |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | |-value: Int 2 -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:24:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:24:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: `-FunctionDecl {{.*}} test_five 'void (int, int, int)' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used z 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: `-CompoundStmt {{.*}} +// CHECK-NEXT: `-OMPDistributeParallelForDirective {{.*}} +// CHECK-NEXT: |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | |-value: Int 2 +// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: `-CapturedStmt {{.*}} // CHECK-NEXT: |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | |-ForStmt {{.*}} +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | `-ForStmt {{.*}} +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | `-ForStmt {{.*}} +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-NullStmt {{.*}} -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | `-NullStmt {{.*}} +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:31:1) *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:31:1) *' +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | `-Record {{.*}} +// CHECK-NEXT: | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' diff --git a/clang/test/AST/ast-dump-openmp-distribute-simd.c b/clang/test/AST/ast-dump-openmp-distribute-simd.c index b5ad177249efb..da07db4398edc 100644 --- a/clang/test/AST/ast-dump-openmp-distribute-simd.c +++ b/clang/test/AST/ast-dump-openmp-distribute-simd.c @@ -37,209 +37,209 @@ void test_five(int x, int y, int z) { // CHECK: TranslationUnitDecl {{.*}} <> // CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-distribute-simd.c:3:1, line:7:1> line:3:6 test_one 'void (int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPDistributeSimdDirective {{.*}} -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:26 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPDistributeSimdDirective {{.*}} -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:21 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:28 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPDistributeSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPDistributeSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 2 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:34 used z 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: `-OMPDistributeSimdDirective {{.*}} -// CHECK-NEXT: |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | |-value: Int 2 -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: `-CapturedStmt {{.*}} -// CHECK-NEXT: |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-NullStmt {{.*}} -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute-simd.c:31:1) *const restrict' -// CHECK-NEXT: | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:19 used x 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPDistributeSimdDirective {{.*}} +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute-simd.c:4:1) *const restrict' +// CHECK: | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:19 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:26 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPDistributeSimdDirective {{.*}} +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute-simd.c:10:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:21 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:28 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPDistributeSimdDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 1 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute-simd.c:17:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPDistributeSimdDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 2 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute-simd.c:24:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' +// CHECK: |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: |-ParmVarDecl {{.*}} col:34 used z 'int' +// CHECK: `-CompoundStmt {{.*}} +// CHECK: `-OMPDistributeSimdDirective {{.*}} +// CHECK: |-OMPCollapseClause {{.*}} +// CHECK: | `-ConstantExpr {{.*}} 'int' +// CHECK: | |-value: Int 2 +// CHECK: | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: `-CapturedStmt {{.*}} +// CHECK: |-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-NullStmt {{.*}} +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute-simd.c:31:1) *const restrict' +// CHECK: | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' diff --git a/clang/test/AST/ast-dump-openmp-distribute.c b/clang/test/AST/ast-dump-openmp-distribute.c index 1867308524d5c..a491d71901c17 100644 --- a/clang/test/AST/ast-dump-openmp-distribute.c +++ b/clang/test/AST/ast-dump-openmp-distribute.c @@ -38,15 +38,15 @@ void test_five(int x, int y, int z) { // CHECK: TranslationUnitDecl {{.*}} <> // CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-distribute.c:3:1, line:7:1> line:3:6 test_one 'void (int)' // CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK: | `-CompoundStmt {{.*}} // CHECK-NEXT: | `-OMPDistributeDirective {{.*}} // CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> // CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' @@ -56,21 +56,21 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | `-NullStmt {{.*}} // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute.c:4:1) *const restrict' -// CHECK-NEXT: | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' // CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:26 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK: | |-ParmVarDecl {{.*}} col:26 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} // CHECK-NEXT: | `-OMPDistributeDirective {{.*}} // CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> // CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' @@ -81,8 +81,8 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | `-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> // CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' @@ -92,16 +92,16 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | `-NullStmt {{.*}} // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute.c:10:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' // CHECK-NEXT: | |-ParmVarDecl {{.*}} col:21 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:28 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK: | |-ParmVarDecl {{.*}} col:28 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} // CHECK-NEXT: | `-OMPDistributeDirective {{.*}} // CHECK-NEXT: | |-OMPCollapseClause {{.*}} // CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' @@ -112,8 +112,8 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> // CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' @@ -124,8 +124,8 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | `-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> // CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' @@ -135,16 +135,16 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | `-NullStmt {{.*}} // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute.c:17:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' // CHECK-NEXT: | |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK: | |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} // CHECK-NEXT: | `-OMPDistributeDirective {{.*}} // CHECK-NEXT: | |-OMPCollapseClause {{.*}} // CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' @@ -155,8 +155,8 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> // CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' @@ -167,8 +167,8 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | `-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> // CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' @@ -178,17 +178,17 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | `-NullStmt {{.*}} // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute.c:24:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' // CHECK-NEXT: |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:34 used z 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} +// CHECK: |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: |-ParmVarDecl {{.*}} col:34 used z 'int' +// CHECK: `-CompoundStmt {{.*}} // CHECK-NEXT: `-OMPDistributeDirective {{.*}} // CHECK-NEXT: |-OMPCollapseClause {{.*}} // CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' @@ -199,8 +199,8 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | |-ForStmt {{.*}} // CHECK-NEXT: | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> // CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' @@ -211,8 +211,8 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | `-ForStmt {{.*}} // CHECK-NEXT: | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> // CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' @@ -223,8 +223,8 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | `-ForStmt {{.*}} // CHECK-NEXT: | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> // CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' @@ -234,12 +234,12 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | `-NullStmt {{.*}} // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-distribute.c:31:1) *const restrict' -// CHECK-NEXT: | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK-NEXT: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' diff --git a/clang/test/AST/ast-dump-openmp-for-simd.c b/clang/test/AST/ast-dump-openmp-for-simd.c index 06ae226ccb17d..00a6a7cee0265 100644 --- a/clang/test/AST/ast-dump-openmp-for-simd.c +++ b/clang/test/AST/ast-dump-openmp-for-simd.c @@ -38,15 +38,15 @@ void test_five(int x, int y, int z) { // CHECK: TranslationUnitDecl {{.*}} <> // CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-for-simd.c:3:1, line:7:1> line:3:6 test_one 'void (int)' // CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK: | `-CompoundStmt {{.*}} // CHECK-NEXT: | `-OMPForSimdDirective {{.*}} // CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> // CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' @@ -56,21 +56,21 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | `-NullStmt {{.*}} // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' // CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:26 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK: | |-ParmVarDecl {{.*}} col:26 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} // CHECK-NEXT: | `-OMPForSimdDirective {{.*}} // CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> // CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' @@ -81,8 +81,8 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | `-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> // CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' @@ -92,16 +92,16 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | `-NullStmt {{.*}} // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' // CHECK-NEXT: | |-ParmVarDecl {{.*}} col:21 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:28 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK: | |-ParmVarDecl {{.*}} col:28 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} // CHECK-NEXT: | `-OMPForSimdDirective {{.*}} // CHECK-NEXT: | |-OMPCollapseClause {{.*}} // CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' @@ -112,8 +112,8 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> // CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' @@ -124,8 +124,8 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | `-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> // CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' @@ -135,16 +135,16 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | `-NullStmt {{.*}} // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' // CHECK-NEXT: | |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK: | |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} // CHECK-NEXT: | `-OMPForSimdDirective {{.*}} // CHECK-NEXT: | |-OMPCollapseClause {{.*}} // CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' @@ -155,8 +155,8 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> // CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' @@ -167,8 +167,8 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | `-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> // CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' @@ -178,17 +178,17 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | `-NullStmt {{.*}} // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' // CHECK-NEXT: |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:34 used z 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} +// CHECK: |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: |-ParmVarDecl {{.*}} col:34 used z 'int' +// CHECK: `-CompoundStmt {{.*}} // CHECK-NEXT: `-OMPForSimdDirective {{.*}} // CHECK-NEXT: |-OMPCollapseClause {{.*}} // CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' @@ -199,8 +199,8 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | |-ForStmt {{.*}} // CHECK-NEXT: | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> // CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' @@ -211,8 +211,8 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | `-ForStmt {{.*}} // CHECK-NEXT: | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> // CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' @@ -223,8 +223,8 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | `-ForStmt {{.*}} // CHECK-NEXT: | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> // CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' @@ -234,12 +234,12 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | `-NullStmt {{.*}} // CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK-NEXT: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' // CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' diff --git a/clang/test/AST/ast-dump-openmp-for.c b/clang/test/AST/ast-dump-openmp-for.c index 65bd72df63488..f3006b06411e2 100644 --- a/clang/test/AST/ast-dump-openmp-for.c +++ b/clang/test/AST/ast-dump-openmp-for.c @@ -38,15 +38,15 @@ void test_five(int x, int y, int z) { // CHECK: TranslationUnitDecl {{.*}} <> // CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-for.c:3:1, line:7:1> line:3:6 test_one 'void (int)' // CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK: | `-CompoundStmt {{.*}} // CHECK-NEXT: | `-OMPForDirective {{.*}} // CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> // CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' @@ -56,21 +56,21 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | `-NullStmt {{.*}} // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-for.c:4:1) *const restrict' -// CHECK-NEXT: | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' // CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:26 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK: | |-ParmVarDecl {{.*}} col:26 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} // CHECK-NEXT: | `-OMPForDirective {{.*}} // CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> // CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' @@ -81,8 +81,8 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | `-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> // CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' // CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' // CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' @@ -92,154 +92,154 @@ void test_five(int x, int y, int z) { // CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' // CHECK-NEXT: | | | `-NullStmt {{.*}} // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-for.c:10:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:21 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:28 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPForDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-for.c:17:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPForDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 2 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-for.c:24:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:34 used z 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: `-OMPForDirective {{.*}} -// CHECK-NEXT: |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | |-value: Int 2 -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: `-CapturedStmt {{.*}} -// CHECK-NEXT: |-CapturedDecl {{.*}} <> -// CHECK-NEXT: | |-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-NullStmt {{.*}} -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-for.c:31:1) *const restrict' -// CHECK-NEXT: | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:21 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:28 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPForDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 1 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-for.c:17:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPForDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 2 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-for.c:24:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' +// CHECK: |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: |-ParmVarDecl {{.*}} col:34 used z 'int' +// CHECK: `-CompoundStmt {{.*}} +// CHECK: `-OMPForDirective {{.*}} +// CHECK: |-OMPCollapseClause {{.*}} +// CHECK: | `-ConstantExpr {{.*}} 'int' +// CHECK: | |-value: Int 2 +// CHECK: | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: `-CapturedStmt {{.*}} +// CHECK: |-CapturedDecl {{.*}} <> +// CHECK: | |-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-NullStmt {{.*}} +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-for.c:31:1) *const restrict' +// CHECK: | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' diff --git a/clang/test/AST/ast-dump-openmp-ordered.c b/clang/test/AST/ast-dump-openmp-ordered.c index 0bbbfdc2f85b0..25bbc4d005a91 100644 --- a/clang/test/AST/ast-dump-openmp-ordered.c +++ b/clang/test/AST/ast-dump-openmp-ordered.c @@ -26,9 +26,9 @@ void test_three(int x) { // CHECK-NEXT: | `-CapturedDecl {{.*}} <> // CHECK-NEXT: | |-NullStmt {{.*}} // CHECK-NEXT: | `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-ordered.c:4:1) *const restrict' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:8:6 test_two 'void (int)' +// CHECK: |-FunctionDecl {{.*}} line:8:6 test_two 'void (int)' // CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK: | `-CompoundStmt {{.*}} // CHECK-NEXT: | `-OMPForDirective {{.*}} // CHECK-NEXT: | |-OMPOrderedClause {{.*}} // CHECK-NEXT: | | `-<<>> @@ -37,46 +37,46 @@ void test_three(int x) { // CHECK-NEXT: | | |-ForStmt {{.*}} // CHECK-NEXT: | | | |-DeclStmt {{.*}} // CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-ordered.c:9:1) *const restrict' -// CHECK-NEXT: | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: `-FunctionDecl {{.*}} line:14:6 test_three 'void (int)' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:21 used x 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: `-OMPForDirective {{.*}} -// CHECK-NEXT: |-OMPOrderedClause {{.*}} -// CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | |-value: Int 1 -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: `-CapturedStmt {{.*}} -// CHECK-NEXT: |-CapturedDecl {{.*}} <> -// CHECK-NEXT: | |-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-CompoundStmt {{.*}} -// CHECK-NEXT: | | `-OMPOrderedDirective {{.*}} openmp_standalone_directive -// CHECK-NEXT: | | `-OMPDependClause {{.*}} > -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-ordered.c:15:1) *const restrict' -// CHECK-NEXT: | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-ordered.c:9:1) *const restrict' +// CHECK: | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: `-FunctionDecl {{.*}} line:14:6 test_three 'void (int)' +// CHECK: |-ParmVarDecl {{.*}} col:21 used x 'int' +// CHECK: `-CompoundStmt {{.*}} +// CHECK: `-OMPForDirective {{.*}} +// CHECK: |-OMPOrderedClause {{.*}} +// CHECK: | `-ConstantExpr {{.*}} 'int' +// CHECK: | |-value: Int 1 +// CHECK: | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK: `-CapturedStmt {{.*}} +// CHECK: |-CapturedDecl {{.*}} <> +// CHECK: | |-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-CompoundStmt {{.*}} +// CHECK: | | `-OMPOrderedDirective {{.*}} openmp_standalone_directive +// CHECK: | | `-OMPDependClause {{.*}} > +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-ordered.c:15:1) *const restrict' +// CHECK: | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' diff --git a/clang/test/AST/ast-dump-openmp-parallel-for-simd.c b/clang/test/AST/ast-dump-openmp-parallel-for-simd.c index 6ef09fe88ab3d..632183506f51e 100644 --- a/clang/test/AST/ast-dump-openmp-parallel-for-simd.c +++ b/clang/test/AST/ast-dump-openmp-parallel-for-simd.c @@ -37,219 +37,219 @@ void test_five(int x, int y, int z) { // CHECK: TranslationUnitDecl {{.*}} <> // CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-parallel-for-simd.c:3:1, line:7:1> line:3:6 test_one 'void (int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPParallelForSimdDirective {{.*}} -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:26 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPParallelForSimdDirective {{.*}} -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:21 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:28 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPParallelForSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPParallelForSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 2 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:34 used z 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: `-OMPParallelForSimdDirective {{.*}} -// CHECK-NEXT: |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | |-value: Int 2 -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: `-CapturedStmt {{.*}} -// CHECK-NEXT: |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-NullStmt {{.*}} -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:19 used x 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPParallelForSimdDirective {{.*}} +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for-simd.c:4:1) *const restrict' +// CHECK: | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:19 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:26 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPParallelForSimdDirective {{.*}} +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for-simd.c:10:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:21 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:28 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPParallelForSimdDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 1 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for-simd.c:17:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPParallelForSimdDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 2 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for-simd.c:24:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' +// CHECK: |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: |-ParmVarDecl {{.*}} col:34 used z 'int' +// CHECK: `-CompoundStmt {{.*}} +// CHECK: `-OMPParallelForSimdDirective {{.*}} +// CHECK: |-OMPCollapseClause {{.*}} +// CHECK: | `-ConstantExpr {{.*}} 'int' +// CHECK: | |-value: Int 2 +// CHECK: | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: `-CapturedStmt {{.*}} +// CHECK: |-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-NullStmt {{.*}} +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for-simd.c:31:1) *const restrict' +// CHECK: | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' diff --git a/clang/test/AST/ast-dump-openmp-parallel-for.c b/clang/test/AST/ast-dump-openmp-parallel-for.c index 647b4480de539..bea4835b16221 100644 --- a/clang/test/AST/ast-dump-openmp-parallel-for.c +++ b/clang/test/AST/ast-dump-openmp-parallel-for.c @@ -37,219 +37,219 @@ void test_five(int x, int y, int z) { // CHECK: TranslationUnitDecl {{.*}} <> // CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-parallel-for.c:3:1, line:7:1> line:3:6 test_one 'void (int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPParallelForDirective {{.*}} -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:26 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPParallelForDirective {{.*}} -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:21 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:28 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPParallelForDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPParallelForDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 2 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:34 used z 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: `-OMPParallelForDirective {{.*}} -// CHECK-NEXT: |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | |-value: Int 2 -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: `-CapturedStmt {{.*}} -// CHECK-NEXT: |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-NullStmt {{.*}} -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:19 used x 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPParallelForDirective {{.*}} +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for.c:4:1) *const restrict' +// CHECK: | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:19 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:26 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPParallelForDirective {{.*}} +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for.c:10:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:21 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:28 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPParallelForDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 1 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for.c:17:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPParallelForDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 2 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for.c:24:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' +// CHECK: |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: |-ParmVarDecl {{.*}} col:34 used z 'int' +// CHECK: `-CompoundStmt {{.*}} +// CHECK: `-OMPParallelForDirective {{.*}} +// CHECK: |-OMPCollapseClause {{.*}} +// CHECK: | `-ConstantExpr {{.*}} 'int' +// CHECK: | |-value: Int 2 +// CHECK: | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: `-CapturedStmt {{.*}} +// CHECK: |-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-NullStmt {{.*}} +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-for.c:31:1) *const restrict' +// CHECK: | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' diff --git a/clang/test/AST/ast-dump-openmp-parallel-sections.c b/clang/test/AST/ast-dump-openmp-parallel-sections.c index b7706c1c58c65..681ab9c83510c 100644 --- a/clang/test/AST/ast-dump-openmp-parallel-sections.c +++ b/clang/test/AST/ast-dump-openmp-parallel-sections.c @@ -21,5 +21,5 @@ void test_one(void) { // CHECK-NEXT: |-CompoundStmt {{.*}} // CHECK-NEXT: | `-NullStmt {{.*}} // CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-sections.c:9:1) *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel-sections.c:9:1) *const restrict' diff --git a/clang/test/AST/ast-dump-openmp-parallel.c b/clang/test/AST/ast-dump-openmp-parallel.c index 9bcd4eb06b4fd..05bba54415b8f 100644 --- a/clang/test/AST/ast-dump-openmp-parallel.c +++ b/clang/test/AST/ast-dump-openmp-parallel.c @@ -13,5 +13,5 @@ void test(void) { // CHECK-NEXT: `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: |-NullStmt {{.*}} // CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel.c:4:1) *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-parallel.c:4:1) *const restrict' diff --git a/clang/test/AST/ast-dump-openmp-simd.c b/clang/test/AST/ast-dump-openmp-simd.c index cffbb9065f1d6..c5853be236774 100644 --- a/clang/test/AST/ast-dump-openmp-simd.c +++ b/clang/test/AST/ast-dump-openmp-simd.c @@ -37,209 +37,209 @@ void test_five(int x, int y, int z) { // CHECK: TranslationUnitDecl {{.*}} <> // CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-simd.c:3:1, line:7:1> line:3:6 test_one 'void (int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPSimdDirective {{.*}} -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:26 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPSimdDirective {{.*}} -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:21 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:28 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 2 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:34 used z 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: `-OMPSimdDirective {{.*}} -// CHECK-NEXT: |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | |-value: Int 2 -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: `-CapturedStmt {{.*}} -// CHECK-NEXT: |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-NullStmt {{.*}} -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-simd.c:31:1) *const restrict' -// CHECK-NEXT: | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:19 used x 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPSimdDirective {{.*}} +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-simd.c:4:1) *const restrict' +// CHECK: | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:19 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:26 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPSimdDirective {{.*}} +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-simd.c:10:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:21 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:28 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPSimdDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 1 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-simd.c:17:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPSimdDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 2 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-simd.c:24:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' +// CHECK: |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: |-ParmVarDecl {{.*}} col:34 used z 'int' +// CHECK: `-CompoundStmt {{.*}} +// CHECK: `-OMPSimdDirective {{.*}} +// CHECK: |-OMPCollapseClause {{.*}} +// CHECK: | `-ConstantExpr {{.*}} 'int' +// CHECK: | |-value: Int 2 +// CHECK: | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: `-CapturedStmt {{.*}} +// CHECK: |-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-NullStmt {{.*}} +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-simd.c:31:1) *const restrict' +// CHECK: | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' diff --git a/clang/test/AST/ast-dump-openmp-target-data.c b/clang/test/AST/ast-dump-openmp-target-data.c index 0abf6f4ca2dfb..3d780c1e52774 100644 --- a/clang/test/AST/ast-dump-openmp-target-data.c +++ b/clang/test/AST/ast-dump-openmp-target-data.c @@ -8,7 +8,7 @@ void test(int x) { // CHECK: TranslationUnitDecl {{.*}} <> // CHECK: `-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-target-data.c:3:1, line:6:1> line:3:6 test 'void (int)' // CHECK-NEXT: |-ParmVarDecl {{.*}} col:15 used x 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} +// CHECK: `-CompoundStmt {{.*}} // CHECK-NEXT: `-OMPTargetDataDirective {{.*}} // CHECK-NEXT: |-OMPMapClause {{.*}} // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' diff --git a/clang/test/AST/ast-dump-openmp-target-enter-data.c b/clang/test/AST/ast-dump-openmp-target-enter-data.c index fa516f1adb773..d944dda48c842 100644 --- a/clang/test/AST/ast-dump-openmp-target-enter-data.c +++ b/clang/test/AST/ast-dump-openmp-target-enter-data.c @@ -8,17 +8,17 @@ void test(int x) { // CHECK: TranslationUnitDecl {{.*}} <> // CHECK: `-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-target-enter-data.c:3:1, line:6:1> line:3:6 test 'void (int)' // CHECK-NEXT: |-ParmVarDecl {{.*}} col:15 used x 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} +// CHECK: `-CompoundStmt {{.*}} // CHECK-NEXT: `-OMPTargetEnterDataDirective {{.*}} openmp_standalone_directive // CHECK-NEXT: |-OMPMapClause {{.*}} // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: `-CapturedStmt {{.*}} // CHECK-NEXT: `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: |-CompoundStmt {{.*}} -// CHECK-NEXT: |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline // CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-enter-data.c:4:1) *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-enter-data.c:4:1) *const restrict' diff --git a/clang/test/AST/ast-dump-openmp-target-exit-data.c b/clang/test/AST/ast-dump-openmp-target-exit-data.c index 255abe66dcf3c..c9db3e61f3cdb 100644 --- a/clang/test/AST/ast-dump-openmp-target-exit-data.c +++ b/clang/test/AST/ast-dump-openmp-target-exit-data.c @@ -8,17 +8,17 @@ void test(int x) { // CHECK: TranslationUnitDecl {{.*}} <> // CHECK: `-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-target-exit-data.c:3:1, line:6:1> line:3:6 test 'void (int)' // CHECK-NEXT: |-ParmVarDecl {{.*}} col:15 used x 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} +// CHECK: `-CompoundStmt {{.*}} // CHECK-NEXT: `-OMPTargetExitDataDirective {{.*}} openmp_standalone_directive // CHECK-NEXT: |-OMPMapClause {{.*}} // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: `-CapturedStmt {{.*}} // CHECK-NEXT: `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: |-CompoundStmt {{.*}} -// CHECK-NEXT: |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline // CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-exit-data.c:4:1) *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-exit-data.c:4:1) *const restrict' diff --git a/clang/test/AST/ast-dump-openmp-target-parallel-for-simd.c b/clang/test/AST/ast-dump-openmp-target-parallel-for-simd.c index cae1f0e018c59..2de5b16fe7eb5 100644 --- a/clang/test/AST/ast-dump-openmp-target-parallel-for-simd.c +++ b/clang/test/AST/ast-dump-openmp-target-parallel-for-simd.c @@ -37,924 +37,924 @@ void test_five(int x, int y, int z) { // CHECK: TranslationUnitDecl {{.*}} <> // CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-target-parallel-for-simd.c:3:1, line:7:1> line:3:6 test_one 'void (int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetParallelForSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:26 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetParallelForSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:21 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:28 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetParallelForSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetParallelForSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 2 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:34 used z 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: `-OMPTargetParallelForSimdDirective {{.*}} -// CHECK-NEXT: |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | |-value: Int 2 -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: `-CapturedStmt {{.*}} -// CHECK-NEXT: |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-NullStmt {{.*}} -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:19 used x 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTargetParallelForSimdDirective {{.*}} +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-CapturedStmt {{.*}} +// CHECK: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | | | |-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-NullStmt {{.*}} +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:4:1) *const restrict' +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:4:1) *const restrict' +// CHECK: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | | | `-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:4:1) *const restrict' +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:4:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | `-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:4:1) *const restrict' +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:4:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | `-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:4:1) *const restrict' +// CHECK: | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:19 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:26 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTargetParallelForSimdDirective {{.*}} +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-CapturedStmt {{.*}} +// CHECK: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | | | |-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-NullStmt {{.*}} +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:10:1) *const restrict' +// CHECK: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:10:1) *const restrict' +// CHECK: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:10:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:10:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:10:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:10:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:10:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:21 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:28 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTargetParallelForSimdDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 1 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-CapturedStmt {{.*}} +// CHECK: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | | | |-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-NullStmt {{.*}} +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:17:1) *const restrict' +// CHECK: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:17:1) *const restrict' +// CHECK: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:17:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:17:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:17:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:17:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:17:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTargetParallelForSimdDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 2 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-CapturedStmt {{.*}} +// CHECK: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | | | |-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-NullStmt {{.*}} +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:24:1) *const restrict' +// CHECK: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:24:1) *const restrict' +// CHECK: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:24:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:24:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:24:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:24:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:24:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' +// CHECK: |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: |-ParmVarDecl {{.*}} col:34 used z 'int' +// CHECK: `-CompoundStmt {{.*}} +// CHECK: `-OMPTargetParallelForSimdDirective {{.*}} +// CHECK: |-OMPCollapseClause {{.*}} +// CHECK: | `-ConstantExpr {{.*}} 'int' +// CHECK: | |-value: Int 2 +// CHECK: | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: |-OMPFirstprivateClause {{.*}} <> +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: `-CapturedStmt {{.*}} +// CHECK: |-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-CapturedStmt {{.*}} +// CHECK: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | |-CapturedStmt {{.*}} +// CHECK: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | | |-ForStmt {{.*}} +// CHECK: | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | |-<<>> +// CHECK: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | |-<<>> +// CHECK: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | |-<<>> +// CHECK: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-NullStmt {{.*}} +// CHECK: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:31:1) *const restrict' +// CHECK: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:31:1) *const restrict' +// CHECK: | | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | |-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | |-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-NullStmt {{.*}} +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:31:1) *const restrict' +// CHECK: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:31:1) *const restrict' +// CHECK: | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | |-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-FieldDecl {{.*}} col:27 implicit 'int' +// CHECK: | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-CapturedStmt {{.*}} +// CHECK: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | |-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-NullStmt {{.*}} +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:31:1) *const restrict' +// CHECK: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:31:1) *const restrict' +// CHECK: | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | |-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-FieldDecl {{.*}} col:27 implicit 'int' +// CHECK: | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-NullStmt {{.*}} +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for-simd.c:31:1) *const restrict' +// CHECK: | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' diff --git a/clang/test/AST/ast-dump-openmp-target-parallel-for.c b/clang/test/AST/ast-dump-openmp-target-parallel-for.c index 53651169e449a..7fab20a3945f5 100644 --- a/clang/test/AST/ast-dump-openmp-target-parallel-for.c +++ b/clang/test/AST/ast-dump-openmp-target-parallel-for.c @@ -37,924 +37,924 @@ void test_five(int x, int y, int z) { // CHECK: TranslationUnitDecl {{.*}} <> // CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-target-parallel-for.c:3:1, line:7:1> line:3:6 test_one 'void (int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetParallelForDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:26 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetParallelForDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:21 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:28 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetParallelForDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetParallelForDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 2 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:34 used z 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: `-OMPTargetParallelForDirective {{.*}} -// CHECK-NEXT: |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | |-value: Int 2 -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: `-CapturedStmt {{.*}} -// CHECK-NEXT: |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-NullStmt {{.*}} -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:19 used x 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTargetParallelForDirective {{.*}} +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-CapturedStmt {{.*}} +// CHECK: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | | | |-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-NullStmt {{.*}} +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:4:1) *const restrict' +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:4:1) *const restrict' +// CHECK: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | | | `-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:4:1) *const restrict' +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:4:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | `-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:4:1) *const restrict' +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:4:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | `-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:4:1) *const restrict' +// CHECK: | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:19 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:26 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTargetParallelForDirective {{.*}} +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-CapturedStmt {{.*}} +// CHECK: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | | | |-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-NullStmt {{.*}} +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:10:1) *const restrict' +// CHECK: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:10:1) *const restrict' +// CHECK: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:10:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:10:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:10:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:10:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:10:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:21 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:28 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTargetParallelForDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 1 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-CapturedStmt {{.*}} +// CHECK: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | | | |-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-NullStmt {{.*}} +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:17:1) *const restrict' +// CHECK: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:17:1) *const restrict' +// CHECK: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:17:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:17:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:17:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:17:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:17:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTargetParallelForDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 2 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-CapturedStmt {{.*}} +// CHECK: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | | | |-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-NullStmt {{.*}} +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:24:1) *const restrict' +// CHECK: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:24:1) *const restrict' +// CHECK: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | | `-FieldDecl {{.*}} col:5 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:24:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:24:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:5 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:24:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:24:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:5 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:24:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' +// CHECK: |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: |-ParmVarDecl {{.*}} col:34 used z 'int' +// CHECK: `-CompoundStmt {{.*}} +// CHECK: `-OMPTargetParallelForDirective {{.*}} +// CHECK: |-OMPCollapseClause {{.*}} +// CHECK: | `-ConstantExpr {{.*}} 'int' +// CHECK: | |-value: Int 2 +// CHECK: | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: |-OMPFirstprivateClause {{.*}} <> +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: `-CapturedStmt {{.*}} +// CHECK: |-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-CapturedStmt {{.*}} +// CHECK: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | |-CapturedStmt {{.*}} +// CHECK: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | | |-ForStmt {{.*}} +// CHECK: | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | |-<<>> +// CHECK: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | |-<<>> +// CHECK: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | |-<<>> +// CHECK: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-NullStmt {{.*}} +// CHECK: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:31:1) *const restrict' +// CHECK: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:31:1) *const restrict' +// CHECK: | | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | |-FieldDecl {{.*}} col:5 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | |-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-NullStmt {{.*}} +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:31:1) *const restrict' +// CHECK: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:31:1) *const restrict' +// CHECK: | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | |-FieldDecl {{.*}} col:5 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-FieldDecl {{.*}} col:27 implicit 'int' +// CHECK: | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-CapturedStmt {{.*}} +// CHECK: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | |-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-NullStmt {{.*}} +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:31:1) *const restrict' +// CHECK: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:31:1) *const restrict' +// CHECK: | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | |-FieldDecl {{.*}} col:5 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-FieldDecl {{.*}} col:27 implicit 'int' +// CHECK: | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-NullStmt {{.*}} +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel-for.c:31:1) *const restrict' +// CHECK: | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' diff --git a/clang/test/AST/ast-dump-openmp-target-parallel.c b/clang/test/AST/ast-dump-openmp-target-parallel.c index 3720856e7f4a7..b7cfe5258b5d5 100644 --- a/clang/test/AST/ast-dump-openmp-target-parallel.c +++ b/clang/test/AST/ast-dump-openmp-target-parallel.c @@ -17,37 +17,37 @@ void test(void) { // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-NullStmt {{.*}} // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel.c:4:1) *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel.c:4:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | `-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-NullStmt {{.*}} -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel.c:4:1) *const restrict' -// CHECK-NEXT: |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel.c:4:1) *const restrict' -// CHECK-NEXT: |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | `-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: |-CapturedStmt {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-NullStmt {{.*}} -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel.c:4:1) *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel.c:4:1) *const restrict' -// CHECK-NEXT: |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | `-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: |-NullStmt {{.*}} -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel.c:4:1) *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel.c:4:1) *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel.c:4:1) *const restrict' +// CHECK: | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | `-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-NullStmt {{.*}} +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel.c:4:1) *const restrict' +// CHECK: |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel.c:4:1) *const restrict' +// CHECK: |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | `-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: `-CapturedDecl {{.*}} <> nothrow +// CHECK: |-CapturedStmt {{.*}} +// CHECK: | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-NullStmt {{.*}} +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel.c:4:1) *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel.c:4:1) *const restrict' +// CHECK: |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | `-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: `-CapturedDecl {{.*}} <> nothrow +// CHECK: |-NullStmt {{.*}} +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-parallel.c:4:1) *const restrict' diff --git a/clang/test/AST/ast-dump-openmp-target-simd.c b/clang/test/AST/ast-dump-openmp-target-simd.c index 7092a94dacd12..7b439e9d60890 100644 --- a/clang/test/AST/ast-dump-openmp-target-simd.c +++ b/clang/test/AST/ast-dump-openmp-target-simd.c @@ -37,464 +37,464 @@ void test_five(int x, int y, int z) { // CHECK: TranslationUnitDecl {{.*}} <> // CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-target-simd.c:3:1, line:7:1> line:3:6 test_one 'void (int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:26 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:21 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:28 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 2 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:34 used z 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: `-OMPTargetSimdDirective {{.*}} -// CHECK-NEXT: |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | |-value: Int 2 -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: `-CapturedStmt {{.*}} -// CHECK-NEXT: |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:31:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-NullStmt {{.*}} -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:31:1) *const restrict' -// CHECK-NEXT: | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:19 used x 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTargetSimdDirective {{.*}} +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:4:1) *const restrict' +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:4:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | `-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:4:1) *const restrict' +// CHECK: | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:19 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:26 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTargetSimdDirective {{.*}} +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:10:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:10:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:10:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:21 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:28 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTargetSimdDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 1 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:17:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:17:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:17:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTargetSimdDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 2 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:24:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:24:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:24:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' +// CHECK: |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: |-ParmVarDecl {{.*}} col:34 used z 'int' +// CHECK: `-CompoundStmt {{.*}} +// CHECK: `-OMPTargetSimdDirective {{.*}} +// CHECK: |-OMPCollapseClause {{.*}} +// CHECK: | `-ConstantExpr {{.*}} 'int' +// CHECK: | |-value: Int 2 +// CHECK: | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: |-OMPFirstprivateClause {{.*}} <> +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: `-CapturedStmt {{.*}} +// CHECK: |-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-CapturedStmt {{.*}} +// CHECK: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | |-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-NullStmt {{.*}} +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:31:1) *const restrict' +// CHECK: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:31:1) *const restrict' +// CHECK: | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | |-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-FieldDecl {{.*}} col:27 implicit 'int' +// CHECK: | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-NullStmt {{.*}} +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-simd.c:31:1) *const restrict' +// CHECK: | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' diff --git a/clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for-simd.c b/clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for-simd.c index 64e19ce0a53bf..65844b6a6547a 100644 --- a/clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for-simd.c +++ b/clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for-simd.c @@ -36,1925 +36,3684 @@ void test_five(int x, int y, int z) { } // CHECK: TranslationUnitDecl {{.*}} <> -// CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:3:1, line:7:1> line:3:6 test_one 'void (int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetTeamsDistributeParallelForSimdDirective {{.*}} +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __int128_t '__int128' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} '__int128' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __uint128_t 'unsigned __int128' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'unsigned __int128' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __NSConstantString 'struct __NSConstantString_tag' +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'struct __NSConstantString_tag' +// CHECK-NEXT: | `-Record {{.*}} '__NSConstantString_tag' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __builtin_ms_va_list 'char *' +// CHECK-NEXT: | `-typeDetails: PointerType {{.*}} 'char *' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'char' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __builtin_va_list 'struct __va_list_tag[1]' +// CHECK-NEXT: | `-typeDetails: ConstantArrayType {{.*}} 'struct __va_list_tag[1]' 1 +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'struct __va_list_tag' +// CHECK-NEXT: | `-Record {{.*}} '__va_list_tag' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_one 'void (int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetTeamsDistributeParallelForSimdDirective {{.*}} // CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *' +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:26 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetTeamsDistributeParallelForSimdDirective {{.*}} +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_two 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetTeamsDistributeParallelForSimdDirective {{.*}} // CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *' +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:21 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:28 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetTeamsDistributeParallelForSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:10:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_three 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetTeamsDistributeParallelForSimdDirective {{.*}} +// CHECK-NEXT: | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | |-value: Int 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *' +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetTeamsDistributeParallelForSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 2 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:17:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_four 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetTeamsDistributeParallelForSimdDirective {{.*}} +// CHECK-NEXT: | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | |-value: Int 2 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 2 // CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *' +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:34 used z 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: `-OMPTargetTeamsDistributeParallelForSimdDirective {{.*}} -// CHECK-NEXT: |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | |-value: Int 2 -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:24:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: `-FunctionDecl {{.*}} test_five 'void (int, int, int)' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used z 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: `-CompoundStmt {{.*}} +// CHECK-NEXT: `-OMPTargetTeamsDistributeParallelForSimdDirective {{.*}} +// CHECK-NEXT: |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | |-value: Int 2 +// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 2 // CHECK-NEXT: |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: `-CapturedStmt {{.*}} +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: `-CapturedStmt {{.*}} // CHECK-NEXT: |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-CapturedStmt {{.*}} +// CHECK-NEXT: | |-CapturedStmt {{.*}} // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *' +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *' +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | `-Record {{.*}} +// CHECK-NEXT: | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-CapturedStmt {{.*}} +// CHECK-NEXT: | |-CapturedStmt {{.*}} // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *' +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | `-Record {{.*}} +// CHECK-NEXT: | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-CapturedStmt {{.*}} +// CHECK-NEXT: | |-CapturedStmt {{.*}} // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *' +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | `-Record {{.*}} +// CHECK-NEXT: | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | |-ForStmt {{.*}} +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | `-ForStmt {{.*}} +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | `-ForStmt {{.*}} +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-NullStmt {{.*}} -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' -// CHECK-NEXT: | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | `-NullStmt {{.*}} +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1) *' +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for-simd.c:31:1)' +// CHECK-NEXT: | | `-Record {{.*}} +// CHECK-NEXT: | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' diff --git a/clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for.c b/clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for.c index cf3f4bfcaf225..576f9b9f94586 100644 --- a/clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for.c +++ b/clang/test/AST/ast-dump-openmp-target-teams-distribute-parallel-for.c @@ -36,1925 +36,3684 @@ void test_five(int x, int y, int z) { } // CHECK: TranslationUnitDecl {{.*}} <> -// CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:3:1, line:7:1> line:3:6 test_one 'void (int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetTeamsDistributeParallelForDirective {{.*}} +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __int128_t '__int128' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} '__int128' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __uint128_t 'unsigned __int128' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'unsigned __int128' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __NSConstantString 'struct __NSConstantString_tag' +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'struct __NSConstantString_tag' +// CHECK-NEXT: | `-Record {{.*}} '__NSConstantString_tag' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __builtin_ms_va_list 'char *' +// CHECK-NEXT: | `-typeDetails: PointerType {{.*}} 'char *' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'char' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __builtin_va_list 'struct __va_list_tag[1]' +// CHECK-NEXT: | `-typeDetails: ConstantArrayType {{.*}} 'struct __va_list_tag[1]' 1 +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'struct __va_list_tag' +// CHECK-NEXT: | `-Record {{.*}} '__va_list_tag' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_one 'void (int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetTeamsDistributeParallelForDirective {{.*}} // CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *' +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:26 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetTeamsDistributeParallelForDirective {{.*}} +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_two 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetTeamsDistributeParallelForDirective {{.*}} // CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *' +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:21 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:28 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetTeamsDistributeParallelForDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:10:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_three 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetTeamsDistributeParallelForDirective {{.*}} +// CHECK-NEXT: | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | |-value: Int 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *' +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetTeamsDistributeParallelForDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 2 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:17:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_four 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetTeamsDistributeParallelForDirective {{.*}} +// CHECK-NEXT: | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | |-value: Int 2 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 2 // CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *' +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:34 used z 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: `-OMPTargetTeamsDistributeParallelForDirective {{.*}} -// CHECK-NEXT: |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | |-value: Int 2 -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:24:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: `-FunctionDecl {{.*}} test_five 'void (int, int, int)' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used z 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: `-CompoundStmt {{.*}} +// CHECK-NEXT: `-OMPTargetTeamsDistributeParallelForDirective {{.*}} +// CHECK-NEXT: |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | |-value: Int 2 +// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 2 // CHECK-NEXT: |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: `-CapturedStmt {{.*}} +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: `-CapturedStmt {{.*}} // CHECK-NEXT: |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-CapturedStmt {{.*}} +// CHECK-NEXT: | |-CapturedStmt {{.*}} // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *' +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *' +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | `-Record {{.*}} +// CHECK-NEXT: | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-CapturedStmt {{.*}} +// CHECK-NEXT: | |-CapturedStmt {{.*}} // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *' +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | `-Record {{.*}} +// CHECK-NEXT: | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-CapturedStmt {{.*}} +// CHECK-NEXT: | |-CapturedStmt {{.*}} // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *' +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | `-Record {{.*}} +// CHECK-NEXT: | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | |-ForStmt {{.*}} +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | `-ForStmt {{.*}} +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | `-ForStmt {{.*}} +// CHECK-NEXT: | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-NullStmt {{.*}} -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' -// CHECK-NEXT: | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | `-NullStmt {{.*}} +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1) *' +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-target-teams-distribute-parallel-for.c:31:1)' +// CHECK-NEXT: | | `-Record {{.*}} +// CHECK-NEXT: | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' diff --git a/clang/test/AST/ast-dump-openmp-target-teams-distribute-simd.c b/clang/test/AST/ast-dump-openmp-target-teams-distribute-simd.c index b27e480c93506..a0bdf1a31710b 100644 --- a/clang/test/AST/ast-dump-openmp-target-teams-distribute-simd.c +++ b/clang/test/AST/ast-dump-openmp-target-teams-distribute-simd.c @@ -37,924 +37,924 @@ void test_five(int x, int y, int z) { // CHECK: TranslationUnitDecl {{.*}} <> // CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-target-teams-distribute-simd.c:3:1, line:7:1> line:3:6 test_one 'void (int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetTeamsDistributeSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:26 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetTeamsDistributeSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:10:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:21 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:28 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetTeamsDistributeSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:17:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetTeamsDistributeSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 2 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:24:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:34 used z 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: `-OMPTargetTeamsDistributeSimdDirective {{.*}} -// CHECK-NEXT: |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | |-value: Int 2 -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: `-CapturedStmt {{.*}} -// CHECK-NEXT: |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:31:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:31:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:31:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-NullStmt {{.*}} -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:31:1) *const restrict' -// CHECK-NEXT: | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:19 used x 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTargetTeamsDistributeSimdDirective {{.*}} +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-CapturedStmt {{.*}} +// CHECK: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | | | |-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-NullStmt {{.*}} +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:4:1) *const restrict' +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:4:1) *const restrict' +// CHECK: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | | | `-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:4:1) *const restrict' +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:4:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | `-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:4:1) *const restrict' +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:4:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | `-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:4:1) *const restrict' +// CHECK: | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:19 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:26 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTargetTeamsDistributeSimdDirective {{.*}} +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-CapturedStmt {{.*}} +// CHECK: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | | | |-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-NullStmt {{.*}} +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:10:1) *const restrict' +// CHECK: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:10:1) *const restrict' +// CHECK: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:10:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:10:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:10:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:10:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:10:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:21 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:28 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTargetTeamsDistributeSimdDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 1 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-CapturedStmt {{.*}} +// CHECK: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | | | |-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-NullStmt {{.*}} +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:17:1) *const restrict' +// CHECK: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:17:1) *const restrict' +// CHECK: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:17:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:17:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:17:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:17:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:17:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTargetTeamsDistributeSimdDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 2 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-CapturedStmt {{.*}} +// CHECK: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | | | |-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-NullStmt {{.*}} +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:24:1) *const restrict' +// CHECK: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:24:1) *const restrict' +// CHECK: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:24:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:24:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:24:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:24:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:24:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' +// CHECK: |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: |-ParmVarDecl {{.*}} col:34 used z 'int' +// CHECK: `-CompoundStmt {{.*}} +// CHECK: `-OMPTargetTeamsDistributeSimdDirective {{.*}} +// CHECK: |-OMPCollapseClause {{.*}} +// CHECK: | `-ConstantExpr {{.*}} 'int' +// CHECK: | |-value: Int 2 +// CHECK: | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: |-OMPFirstprivateClause {{.*}} <> +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: `-CapturedStmt {{.*}} +// CHECK: |-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-CapturedStmt {{.*}} +// CHECK: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | |-CapturedStmt {{.*}} +// CHECK: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | | |-ForStmt {{.*}} +// CHECK: | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | |-<<>> +// CHECK: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | |-<<>> +// CHECK: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | |-<<>> +// CHECK: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-NullStmt {{.*}} +// CHECK: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:31:1) *const restrict' +// CHECK: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:31:1) *const restrict' +// CHECK: | | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | |-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | |-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-NullStmt {{.*}} +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:31:1) *const restrict' +// CHECK: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:31:1) *const restrict' +// CHECK: | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | |-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-FieldDecl {{.*}} col:27 implicit 'int' +// CHECK: | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-CapturedStmt {{.*}} +// CHECK: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | |-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-NullStmt {{.*}} +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:31:1) *const restrict' +// CHECK: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:31:1) *const restrict' +// CHECK: | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | |-FieldDecl {{.*}} col:23 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | |-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-FieldDecl {{.*}} col:27 implicit 'int' +// CHECK: | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-NullStmt {{.*}} +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute-simd.c:31:1) *const restrict' +// CHECK: | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' diff --git a/clang/test/AST/ast-dump-openmp-target-teams-distribute.c b/clang/test/AST/ast-dump-openmp-target-teams-distribute.c index 3f802b3796b26..78dbe10766e0d 100644 --- a/clang/test/AST/ast-dump-openmp-target-teams-distribute.c +++ b/clang/test/AST/ast-dump-openmp-target-teams-distribute.c @@ -37,924 +37,924 @@ void test_five(int x, int y, int z) { // CHECK: TranslationUnitDecl {{.*}} <> // CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-target-teams-distribute.c:3:1, line:7:1> line:3:6 test_one 'void (int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetTeamsDistributeDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:4:1) *const restrict' -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:4:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:4:1) *const restrict' -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:4:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:4:1) *const restrict' -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:4:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:4:1) *const restrict' -// CHECK-NEXT: | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:26 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetTeamsDistributeDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:10:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:10:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:10:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:10:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:10:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:21 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:28 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetTeamsDistributeDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:17:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:17:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:17:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:17:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:17:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetTeamsDistributeDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 2 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:24:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:24:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:24:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:24:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:24:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:34 used z 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: `-OMPTargetTeamsDistributeDirective {{.*}} -// CHECK-NEXT: |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | |-value: Int 2 -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: `-CapturedStmt {{.*}} -// CHECK-NEXT: |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:31:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:31:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:31:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:31:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-NullStmt {{.*}} -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:31:1) *const restrict' -// CHECK-NEXT: | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:19 used x 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTargetTeamsDistributeDirective {{.*}} +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-CapturedStmt {{.*}} +// CHECK: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | | | |-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-NullStmt {{.*}} +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:4:1) *const restrict' +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:4:1) *const restrict' +// CHECK: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | | | `-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:4:1) *const restrict' +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:4:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | `-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:4:1) *const restrict' +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:4:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | `-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:4:1) *const restrict' +// CHECK: | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:19 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:26 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTargetTeamsDistributeDirective {{.*}} +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-CapturedStmt {{.*}} +// CHECK: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | | | |-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-NullStmt {{.*}} +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:10:1) *const restrict' +// CHECK: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:10:1) *const restrict' +// CHECK: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:10:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:10:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:10:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:10:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:10:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:21 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:28 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTargetTeamsDistributeDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 1 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-CapturedStmt {{.*}} +// CHECK: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | | | |-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-NullStmt {{.*}} +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:17:1) *const restrict' +// CHECK: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:17:1) *const restrict' +// CHECK: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:17:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:17:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:17:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:17:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:25 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:17:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTargetTeamsDistributeDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 2 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-CapturedStmt {{.*}} +// CHECK: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | | | |-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | | |-<<>> +// CHECK: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-NullStmt {{.*}} +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:24:1) *const restrict' +// CHECK: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:24:1) *const restrict' +// CHECK: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | | `-FieldDecl {{.*}} col:5 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:24:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:24:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:5 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-CapturedStmt {{.*}} +// CHECK: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | |-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-<<>> +// CHECK: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-NullStmt {{.*}} +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:24:1) *const restrict' +// CHECK: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:24:1) *const restrict' +// CHECK: | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-FieldDecl {{.*}} col:5 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ForStmt {{.*}} +// CHECK: | | | |-DeclStmt {{.*}} +// CHECK: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-<<>> +// CHECK: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:24:1) *const restrict' +// CHECK: | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' +// CHECK: |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: |-ParmVarDecl {{.*}} col:34 used z 'int' +// CHECK: `-CompoundStmt {{.*}} +// CHECK: `-OMPTargetTeamsDistributeDirective {{.*}} +// CHECK: |-OMPCollapseClause {{.*}} +// CHECK: | `-ConstantExpr {{.*}} 'int' +// CHECK: | |-value: Int 2 +// CHECK: | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: |-OMPFirstprivateClause {{.*}} <> +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: `-CapturedStmt {{.*}} +// CHECK: |-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-CapturedStmt {{.*}} +// CHECK: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | |-CapturedStmt {{.*}} +// CHECK: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | | | |-ForStmt {{.*}} +// CHECK: | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | |-<<>> +// CHECK: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | |-<<>> +// CHECK: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-ForStmt {{.*}} +// CHECK: | | | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | | |-<<>> +// CHECK: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | | `-NullStmt {{.*}} +// CHECK: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:31:1) *const restrict' +// CHECK: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:31:1) *const restrict' +// CHECK: | | | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | |-FieldDecl {{.*}} col:5 implicit 'int' +// CHECK: | | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | | `-FieldDecl {{.*}} col:27 implicit 'int' +// CHECK: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | |-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-NullStmt {{.*}} +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:31:1) *const restrict' +// CHECK: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:31:1) *const restrict' +// CHECK: | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | |-FieldDecl {{.*}} col:5 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-FieldDecl {{.*}} col:27 implicit 'int' +// CHECK: | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-CapturedStmt {{.*}} +// CHECK: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK: | | | |-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-ForStmt {{.*}} +// CHECK: | | | | |-DeclStmt {{.*}} +// CHECK: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | | |-<<>> +// CHECK: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | | `-NullStmt {{.*}} +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:31:1) *const restrict' +// CHECK: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:31:1) *const restrict' +// CHECK: | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | | |-FieldDecl {{.*}} col:3 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | |-FieldDecl {{.*}} col:5 implicit 'int' +// CHECK: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | | `-FieldDecl {{.*}} col:27 implicit 'int' +// CHECK: | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK: | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-NullStmt {{.*}} +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams-distribute.c:31:1) *const restrict' +// CHECK: | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' diff --git a/clang/test/AST/ast-dump-openmp-target-teams.c b/clang/test/AST/ast-dump-openmp-target-teams.c index a510fdebd52ec..34e8492d1ce09 100644 --- a/clang/test/AST/ast-dump-openmp-target-teams.c +++ b/clang/test/AST/ast-dump-openmp-target-teams.c @@ -7,47 +7,47 @@ void test(void) { // CHECK: TranslationUnitDecl {{.*}} <> // CHECK: `-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-target-teams.c:3:1, line:6:1> line:3:6 test 'void (void)' -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: `-OMPTargetTeamsDirective {{.*}} -// CHECK-NEXT: `-CapturedStmt {{.*}} -// CHECK-NEXT: `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: |-CapturedStmt {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams.c:4:1) *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams.c:4:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | `-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-NullStmt {{.*}} -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams.c:4:1) *const restrict' -// CHECK-NEXT: |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams.c:4:1) *const restrict' -// CHECK-NEXT: |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | `-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: |-CapturedStmt {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-NullStmt {{.*}} -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams.c:4:1) *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams.c:4:1) *const restrict' -// CHECK-NEXT: |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | `-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: |-NullStmt {{.*}} -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams.c:4:1) *const restrict' +// CHECK: `-CompoundStmt {{.*}} +// CHECK: `-OMPTargetTeamsDirective {{.*}} +// CHECK: `-CapturedStmt {{.*}} +// CHECK: `-CapturedDecl {{.*}} <> nothrow +// CHECK: |-CapturedStmt {{.*}} +// CHECK: | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-CapturedStmt {{.*}} +// CHECK: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | | |-NullStmt {{.*}} +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams.c:4:1) *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams.c:4:1) *const restrict' +// CHECK: | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | `-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-NullStmt {{.*}} +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams.c:4:1) *const restrict' +// CHECK: |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams.c:4:1) *const restrict' +// CHECK: |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | `-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: `-CapturedDecl {{.*}} <> nothrow +// CHECK: |-CapturedStmt {{.*}} +// CHECK: | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-NullStmt {{.*}} +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams.c:4:1) *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams.c:4:1) *const restrict' +// CHECK: |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | `-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: `-CapturedDecl {{.*}} <> nothrow +// CHECK: |-NullStmt {{.*}} +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-teams.c:4:1) *const restrict' diff --git a/clang/test/AST/ast-dump-openmp-target-update.c b/clang/test/AST/ast-dump-openmp-target-update.c index 629c62a317a57..1e1bbcdd8a0c2 100644 --- a/clang/test/AST/ast-dump-openmp-target-update.c +++ b/clang/test/AST/ast-dump-openmp-target-update.c @@ -7,17 +7,17 @@ void test(int x) { // CHECK: TranslationUnitDecl {{.*}} <> // CHECK: `-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-target-update.c:3:1, line:5:1> line:3:6 test 'void (int)' // CHECK-NEXT: |-ParmVarDecl {{.*}} col:15 used x 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} +// CHECK: `-CompoundStmt {{.*}} // CHECK-NEXT: `-OMPTargetUpdateDirective {{.*}} openmp_standalone_directive // CHECK-NEXT: |-OMPToClause {{.*}} // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' // CHECK-NEXT: `-CapturedStmt {{.*}} // CHECK-NEXT: `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: |-CompoundStmt {{.*}} -// CHECK-NEXT: |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline // CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-update.c:4:1) *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target-update.c:4:1) *const restrict' diff --git a/clang/test/AST/ast-dump-openmp-target.c b/clang/test/AST/ast-dump-openmp-target.c index ca33a8259c9cc..a847853ea9342 100644 --- a/clang/test/AST/ast-dump-openmp-target.c +++ b/clang/test/AST/ast-dump-openmp-target.c @@ -15,15 +15,15 @@ void test(void) { // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | |-NullStmt {{.*}} // CHECK-NEXT: | `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target.c:4:1) *const restrict' -// CHECK-NEXT: |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target.c:4:1) *const restrict' -// CHECK-NEXT: |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | `-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: |-NullStmt {{.*}} -// CHECK-NEXT: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target.c:4:1) *const restrict' +// CHECK: |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target.c:4:1) *const restrict' +// CHECK: |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | `-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: `-CapturedDecl {{.*}} <> nothrow +// CHECK: |-NullStmt {{.*}} +// CHECK: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-target.c:4:1) *const restrict' diff --git a/clang/test/AST/ast-dump-openmp-task.c b/clang/test/AST/ast-dump-openmp-task.c index 1945c3cfd3761..166521524dee3 100644 --- a/clang/test/AST/ast-dump-openmp-task.c +++ b/clang/test/AST/ast-dump-openmp-task.c @@ -18,10 +18,10 @@ void test(void) { // CHECK-NEXT: `-CapturedStmt {{.*}} // CHECK-NEXT: `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: |-NullStmt {{.*}} -// CHECK-NEXT: |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline // CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-task.c:6:1) *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-task.c:6:1) *const restrict' diff --git a/clang/test/AST/ast-dump-openmp-taskloop-simd.c b/clang/test/AST/ast-dump-openmp-taskloop-simd.c index de70ecdefd16a..cd5921f04a589 100644 --- a/clang/test/AST/ast-dump-openmp-taskloop-simd.c +++ b/clang/test/AST/ast-dump-openmp-taskloop-simd.c @@ -37,269 +37,269 @@ void test_five(int x, int y, int z) { // CHECK: TranslationUnitDecl {{.*}} <> // CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-taskloop-simd.c:3:1, line:7:1> line:3:6 test_one 'void (int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTaskLoopSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-NullStmt {{.*}} -// CHECK-NEXT: | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .lb. 'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .ub. 'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .st. 'const long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .liter. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .reductions. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-taskloop-simd.c:4:1) *const restrict' -// CHECK-NEXT: | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:26 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTaskLoopSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-NullStmt {{.*}} -// CHECK-NEXT: | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .lb. 'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .ub. 'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .st. 'const long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .liter. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .reductions. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-taskloop-simd.c:10:1) *const restrict' -// CHECK-NEXT: | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:21 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:28 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTaskLoopSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-NullStmt {{.*}} -// CHECK-NEXT: | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .lb. 'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .ub. 'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .st. 'const long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .liter. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .reductions. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-taskloop-simd.c:17:1) *const restrict' -// CHECK-NEXT: | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTaskLoopSimdDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 2 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-NullStmt {{.*}} -// CHECK-NEXT: | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .lb. 'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .ub. 'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .st. 'const long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .liter. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .reductions. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-taskloop-simd.c:24:1) *const restrict' -// CHECK-NEXT: | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:34 used z 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: `-OMPTaskLoopSimdDirective {{.*}} -// CHECK-NEXT: |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | |-value: Int 2 -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: `-CapturedStmt {{.*}} -// CHECK-NEXT: `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: |-ForStmt {{.*}} -// CHECK-NEXT: | |-DeclStmt {{.*}} -// CHECK-NEXT: | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-<<>> -// CHECK-NEXT: | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | `-ForStmt {{.*}} -// CHECK-NEXT: | |-DeclStmt {{.*}} -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-<<>> -// CHECK-NEXT: | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | `-ForStmt {{.*}} -// CHECK-NEXT: | |-DeclStmt {{.*}} -// CHECK-NEXT: | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-<<>> -// CHECK-NEXT: | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | `-NullStmt {{.*}} -// CHECK-NEXT: |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .lb. 'const unsigned long' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .ub. 'const unsigned long' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .st. 'const long' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .liter. 'const int' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .reductions. 'void *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-taskloop-simd.c:31:1) *const restrict' -// CHECK-NEXT: |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: `-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-ParmVarDecl {{.*}} col:19 used x 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTaskLoopSimdDirective {{.*}} +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-NullStmt {{.*}} +// CHECK: | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .lb. 'const unsigned long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .ub. 'const unsigned long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .st. 'const long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .liter. 'const int' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .reductions. 'void *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-taskloop-simd.c:4:1) *const restrict' +// CHECK: | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:19 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:26 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTaskLoopSimdDirective {{.*}} +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-NullStmt {{.*}} +// CHECK: | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .lb. 'const unsigned long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .ub. 'const unsigned long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .st. 'const long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .liter. 'const int' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .reductions. 'void *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-taskloop-simd.c:10:1) *const restrict' +// CHECK: | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:21 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:28 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTaskLoopSimdDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 1 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-NullStmt {{.*}} +// CHECK: | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .lb. 'const unsigned long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .ub. 'const unsigned long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .st. 'const long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .liter. 'const int' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .reductions. 'void *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-taskloop-simd.c:17:1) *const restrict' +// CHECK: | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTaskLoopSimdDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 2 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-NullStmt {{.*}} +// CHECK: | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .lb. 'const unsigned long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .ub. 'const unsigned long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .st. 'const long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .liter. 'const int' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .reductions. 'void *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-taskloop-simd.c:24:1) *const restrict' +// CHECK: | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' +// CHECK: |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: |-ParmVarDecl {{.*}} col:34 used z 'int' +// CHECK: `-CompoundStmt {{.*}} +// CHECK: `-OMPTaskLoopSimdDirective {{.*}} +// CHECK: |-OMPCollapseClause {{.*}} +// CHECK: | `-ConstantExpr {{.*}} 'int' +// CHECK: | |-value: Int 2 +// CHECK: | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: |-OMPFirstprivateClause {{.*}} <> +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: `-CapturedStmt {{.*}} +// CHECK: `-CapturedDecl {{.*}} <> nothrow +// CHECK: |-ForStmt {{.*}} +// CHECK: | |-DeclStmt {{.*}} +// CHECK: | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-<<>> +// CHECK: | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | `-ForStmt {{.*}} +// CHECK: | |-DeclStmt {{.*}} +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-<<>> +// CHECK: | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | `-ForStmt {{.*}} +// CHECK: | |-DeclStmt {{.*}} +// CHECK: | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-<<>> +// CHECK: | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | `-NullStmt {{.*}} +// CHECK: |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .lb. 'const unsigned long' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .ub. 'const unsigned long' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .st. 'const long' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .liter. 'const int' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .reductions. 'void *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-taskloop-simd.c:31:1) *const restrict' +// CHECK: |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: |-IntegerLiteral {{.*}} 'int' 0 diff --git a/clang/test/AST/ast-dump-openmp-taskloop.c b/clang/test/AST/ast-dump-openmp-taskloop.c index d6a9e2df149fc..599b31ec767c8 100644 --- a/clang/test/AST/ast-dump-openmp-taskloop.c +++ b/clang/test/AST/ast-dump-openmp-taskloop.c @@ -37,269 +37,269 @@ void test_five(int x, int y, int z) { // CHECK: TranslationUnitDecl {{.*}} <> // CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-taskloop.c:3:1, line:7:1> line:3:6 test_one 'void (int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTaskLoopDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> -// CHECK-NEXT: | |-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-NullStmt {{.*}} -// CHECK-NEXT: | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .lb. 'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .ub. 'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .st. 'const long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .liter. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .reductions. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-taskloop.c:4:1) *const restrict' -// CHECK-NEXT: | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:26 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTaskLoopDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> -// CHECK-NEXT: | |-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-NullStmt {{.*}} -// CHECK-NEXT: | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .lb. 'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .ub. 'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .st. 'const long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .liter. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .reductions. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-taskloop.c:10:1) *const restrict' -// CHECK-NEXT: | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:21 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:28 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTaskLoopDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> -// CHECK-NEXT: | |-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-NullStmt {{.*}} -// CHECK-NEXT: | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .lb. 'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .ub. 'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .st. 'const long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .liter. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .reductions. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-taskloop.c:17:1) *const restrict' -// CHECK-NEXT: | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTaskLoopDirective {{.*}} -// CHECK-NEXT: | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | |-value: Int 2 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> -// CHECK-NEXT: | |-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ForStmt {{.*}} -// CHECK-NEXT: | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-<<>> -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-NullStmt {{.*}} -// CHECK-NEXT: | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .lb. 'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .ub. 'const unsigned long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .st. 'const long' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .liter. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .reductions. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-taskloop.c:24:1) *const restrict' -// CHECK-NEXT: | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:34 used z 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: `-OMPTaskLoopDirective {{.*}} -// CHECK-NEXT: |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | |-value: Int 2 -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: `-CapturedStmt {{.*}} -// CHECK-NEXT: `-CapturedDecl {{.*}} <> -// CHECK-NEXT: |-ForStmt {{.*}} -// CHECK-NEXT: | |-DeclStmt {{.*}} -// CHECK-NEXT: | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-<<>> -// CHECK-NEXT: | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | `-ForStmt {{.*}} -// CHECK-NEXT: | |-DeclStmt {{.*}} -// CHECK-NEXT: | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-<<>> -// CHECK-NEXT: | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | `-ForStmt {{.*}} -// CHECK-NEXT: | |-DeclStmt {{.*}} -// CHECK-NEXT: | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-<<>> -// CHECK-NEXT: | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | `-NullStmt {{.*}} -// CHECK-NEXT: |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .lb. 'const unsigned long' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .ub. 'const unsigned long' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .st. 'const long' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .liter. 'const int' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .reductions. 'void *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-taskloop.c:31:1) *const restrict' -// CHECK-NEXT: |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: `-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-ParmVarDecl {{.*}} col:19 used x 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTaskLoopDirective {{.*}} +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | `-CapturedDecl {{.*}} <> +// CHECK: | |-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-NullStmt {{.*}} +// CHECK: | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .lb. 'const unsigned long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .ub. 'const unsigned long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .st. 'const long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .liter. 'const int' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .reductions. 'void *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-taskloop.c:4:1) *const restrict' +// CHECK: | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: |-FunctionDecl {{.*}} line:9:6 test_two 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:19 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:26 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTaskLoopDirective {{.*}} +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | `-CapturedDecl {{.*}} <> +// CHECK: | |-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-NullStmt {{.*}} +// CHECK: | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .lb. 'const unsigned long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .ub. 'const unsigned long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .st. 'const long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .liter. 'const int' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .reductions. 'void *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-taskloop.c:10:1) *const restrict' +// CHECK: | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: |-FunctionDecl {{.*}} line:16:6 test_three 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:21 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:28 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTaskLoopDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 1 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | `-CapturedDecl {{.*}} <> +// CHECK: | |-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-NullStmt {{.*}} +// CHECK: | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .lb. 'const unsigned long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .ub. 'const unsigned long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .st. 'const long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .liter. 'const int' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .reductions. 'void *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-taskloop.c:17:1) *const restrict' +// CHECK: | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: |-FunctionDecl {{.*}} line:23:6 test_four 'void (int, int)' +// CHECK: | |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: | |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | `-OMPTaskLoopDirective {{.*}} +// CHECK: | |-OMPCollapseClause {{.*}} +// CHECK: | | `-ConstantExpr {{.*}} 'int' +// CHECK: | | |-value: Int 2 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: | |-OMPFirstprivateClause {{.*}} <> +// CHECK: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | `-CapturedDecl {{.*}} <> +// CHECK: | |-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ForStmt {{.*}} +// CHECK: | | |-DeclStmt {{.*}} +// CHECK: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-<<>> +// CHECK: | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-NullStmt {{.*}} +// CHECK: | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .lb. 'const unsigned long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .ub. 'const unsigned long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .st. 'const long' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .liter. 'const int' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .reductions. 'void *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-taskloop.c:24:1) *const restrict' +// CHECK: | |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: `-FunctionDecl {{.*}} line:30:6 test_five 'void (int, int, int)' +// CHECK: |-ParmVarDecl {{.*}} col:20 used x 'int' +// CHECK: |-ParmVarDecl {{.*}} col:27 used y 'int' +// CHECK: |-ParmVarDecl {{.*}} col:34 used z 'int' +// CHECK: `-CompoundStmt {{.*}} +// CHECK: `-OMPTaskLoopDirective {{.*}} +// CHECK: |-OMPCollapseClause {{.*}} +// CHECK: | `-ConstantExpr {{.*}} 'int' +// CHECK: | |-value: Int 2 +// CHECK: | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK: |-OMPFirstprivateClause {{.*}} <> +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: `-CapturedStmt {{.*}} +// CHECK: `-CapturedDecl {{.*}} <> +// CHECK: |-ForStmt {{.*}} +// CHECK: | |-DeclStmt {{.*}} +// CHECK: | | `-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-<<>> +// CHECK: | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | `-ForStmt {{.*}} +// CHECK: | |-DeclStmt {{.*}} +// CHECK: | | `-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-<<>> +// CHECK: | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | `-ForStmt {{.*}} +// CHECK: | |-DeclStmt {{.*}} +// CHECK: | | `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | |-<<>> +// CHECK: | |-BinaryOperator {{.*}} 'int' '<' +// CHECK: | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK: | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK: | `-NullStmt {{.*}} +// CHECK: |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .lb. 'const unsigned long' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .ub. 'const unsigned long' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .st. 'const long' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .liter. 'const int' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .reductions. 'void *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-taskloop.c:31:1) *const restrict' +// CHECK: |-VarDecl {{.*}} col:12 used i 'int' cinit +// CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: |-VarDecl {{.*}} col:14 used i 'int' cinit +// CHECK: | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: `-VarDecl {{.*}} col:16 used i 'int' cinit +// CHECK: |-IntegerLiteral {{.*}} 'int' 0 diff --git a/clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for-simd.c b/clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for-simd.c index c8da8cd1a5efa..ec134ec22a7c5 100644 --- a/clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for-simd.c +++ b/clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for-simd.c @@ -41,2143 +41,3902 @@ void test_five(int x, int y, int z) { } // CHECK: TranslationUnitDecl {{.*}} <> -// CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:3:1, line:8:1> line:3:6 test_one 'void (int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetDirective {{.*}} +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __int128_t '__int128' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} '__int128' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __uint128_t 'unsigned __int128' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'unsigned __int128' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __NSConstantString 'struct __NSConstantString_tag' +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'struct __NSConstantString_tag' +// CHECK-NEXT: | `-Record {{.*}} '__NSConstantString_tag' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __builtin_ms_va_list 'char *' +// CHECK-NEXT: | `-typeDetails: PointerType {{.*}} 'char *' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'char' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __builtin_va_list 'struct __va_list_tag[1]' +// CHECK-NEXT: | `-typeDetails: ConstantArrayType {{.*}} 'struct __va_list_tag[1]' 1 +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'struct __va_list_tag' +// CHECK-NEXT: | `-Record {{.*}} '__va_list_tag' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_one 'void (int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetDirective {{.*}} // CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} -// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} +// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' -// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:23 implicit 'int &' +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *' +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:23 implicit 'int &' +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:4:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' -// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} col:23 implicit 'int &' +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *' +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:4:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:4:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} -// CHECK-NEXT: | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} +// CHECK-NEXT: | | | `-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:23 implicit 'int &' +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int &' +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:4:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:4:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:4:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:23 implicit 'int &' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:5:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:10:6 test_two 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:26 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetDirective {{.*}} +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_two 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetDirective {{.*}} // CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} -// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} +// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' -// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' -// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *' +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:11:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:11:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:11:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:11:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:11:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:11:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' -// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' -// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *' +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:11:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:11:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:11:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:11:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:11:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:11:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} -// CHECK-NEXT: | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} +// CHECK-NEXT: | | | `-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:11:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int &' +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:11:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:11:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:11:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:11:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:11:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:12:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:18:6 test_three 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:21 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:28 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetDirective {{.*}} +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_three 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetDirective {{.*}} // CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} -// CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | |-value: Int 1 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} +// CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-value: Int 1 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' -// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' -// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *' +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:19:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:19:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:19:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:19:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:19:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:19:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' -// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' -// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *' +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:19:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:19:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:19:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:19:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:19:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:19:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} -// CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | | |-value: Int 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} +// CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | |-value: Int 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | `-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:19:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int &' +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:19:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:19:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:19:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:19:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:19:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:20:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:26:6 test_four 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetDirective {{.*}} +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_four 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetDirective {{.*}} // CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} -// CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | |-value: Int 2 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} +// CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-value: Int 2 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' -// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' -// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *' +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:27:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:27:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:27:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:27:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:27:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:27:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' -// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' -// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *' +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:25 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'long' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'long' '-' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'long' '*' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'long' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'long' '-' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'long' '*' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} <> 'long' // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:27:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:27:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:27:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:27:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:27:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:27:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} -// CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | | |-value: Int 2 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} +// CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | |-value: Int 2 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | | | `-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:27:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int &' +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:27:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:27:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:27:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:27:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:27:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:25 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'long' -// CHECK-NEXT: | | `-BinaryOperator {{.*}} > 'long' '-' -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'long' '*' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:28:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'long' +// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'long' '-' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'long' '*' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} <> 'long' // CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-FunctionDecl {{.*}} line:34:6 test_five 'void (int, int, int)' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:34 used z 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: `-OMPTargetDirective {{.*}} +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: `-FunctionDecl {{.*}} test_five 'void (int, int, int)' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used z 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: `-CompoundStmt {{.*}} +// CHECK-NEXT: `-OMPTargetDirective {{.*}} // CHECK-NEXT: |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: `-CapturedStmt {{.*}} +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: `-CapturedStmt {{.*}} // CHECK-NEXT: |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-CapturedStmt {{.*}} +// CHECK-NEXT: | |-CapturedStmt {{.*}} // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} -// CHECK-NEXT: | | | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | |-value: Int 2 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} +// CHECK-NEXT: | | | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | |-value: Int 2 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | | | | `-CapturedStmt {{.*}} // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' -// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' -// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} col:27 implicit 'int &' +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *' +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:35:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int &' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:35:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:35:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:35:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:35:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:35:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:27 implicit 'int &' +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-OMPCapturedExprDecl {{.*}} col:25 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'long' -// CHECK-NEXT: | | | `-BinaryOperator {{.*}} > 'long' '-' -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'long' '*' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'long' +// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'long' '-' +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'long' '*' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} <> 'long' // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:35:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:35:1) *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:35:1) *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:35:1) *' +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:35:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:35:1)' +// CHECK-NEXT: | | `-Record {{.*}} +// CHECK-NEXT: | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 // CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} -// CHECK-NEXT: | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | |-value: Int 2 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | |-OMPTeamsDistributeParallelForSimdDirective {{.*}} +// CHECK-NEXT: | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | |-value: Int 2 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | | `-CapturedStmt {{.*}} // CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int &' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:35:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int &' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:35:1) *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:35:1) *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:35:1) *' +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:35:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:35:1)' +// CHECK-NEXT: | | `-Record {{.*}} +// CHECK-NEXT: | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedStmt {{.*}} // CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:27 implicit 'int &' +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int &' // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' // CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-OMPCapturedExprDecl {{.*}} col:25 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'long' -// CHECK-NEXT: | `-BinaryOperator {{.*}} > 'long' '-' -// CHECK-NEXT: | |-BinaryOperator {{.*}} 'long' '*' -// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for-simd.c:36:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'long' +// CHECK-NEXT: | `-BinaryOperator {{.*}} 'long' '-' +// CHECK-NEXT: | |-BinaryOperator {{.*}} 'long' '*' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 // CHECK-NEXT: | `-ImplicitCastExpr {{.*}} <> 'long' // CHECK-NEXT: | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' +// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' diff --git a/clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for.c b/clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for.c index 09b649cbb3660..37247e35426b6 100644 --- a/clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for.c +++ b/clang/test/AST/ast-dump-openmp-teams-distribute-parallel-for.c @@ -1,2183 +1,3942 @@ -// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fopenmp -ast-dump %s | FileCheck --match-full-lines -implicit-check-not=openmp_structured_block %s - -void test_one(int x) { -#pragma omp target -#pragma omp teams distribute parallel for - for (int i = 0; i < x; i++) - ; -} - -void test_two(int x, int y) { -#pragma omp target -#pragma omp teams distribute parallel for - for (int i = 0; i < x; i++) - for (int i = 0; i < y; i++) - ; -} - -void test_three(int x, int y) { -#pragma omp target -#pragma omp teams distribute parallel for collapse(1) - for (int i = 0; i < x; i++) - for (int i = 0; i < y; i++) - ; -} - -void test_four(int x, int y) { -#pragma omp target -#pragma omp teams distribute parallel for collapse(2) - for (int i = 0; i < x; i++) - for (int i = 0; i < y; i++) - ; -} - -void test_five(int x, int y, int z) { -#pragma omp target -#pragma omp teams distribute parallel for collapse(2) - for (int i = 0; i < x; i++) - for (int i = 0; i < y; i++) - for (int i = 0; i < z; i++) - ; -} - -// CHECK: TranslationUnitDecl {{.*}} <> -// CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:3:1, line:8:1> line:3:6 test_one 'void (int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForDirective {{.*}} -// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' -// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' -// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForDirective {{.*}} -// CHECK-NEXT: | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:4:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:10:6 test_two 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:26 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForDirective {{.*}} -// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' -// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' -// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:11:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' -// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' -// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:11:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForDirective {{.*}} -// CHECK-NEXT: | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:11:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:18:6 test_three 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:21 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:28 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForDirective {{.*}} -// CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | |-value: Int 1 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' -// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' -// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:19:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' -// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' -// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:19:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForDirective {{.*}} -// CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | | |-value: Int 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:19:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:26:6 test_four 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForDirective {{.*}} -// CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | |-value: Int 2 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' -// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' -// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} col:5 implicit 'int &' -// CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:27:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:5 implicit 'int &' -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' -// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' -// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} col:5 implicit 'int &' -// CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:25 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'long' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'long' '-' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'long' '*' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} <> 'long' -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:27:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForDirective {{.*}} -// CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | | |-value: Int 2 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:5 implicit 'int &' -// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:27:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:5 implicit 'int &' -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:5 implicit 'int &' -// CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:25 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'long' -// CHECK-NEXT: | | `-BinaryOperator {{.*}} > 'long' '-' -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'long' '*' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} <> 'long' -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-FunctionDecl {{.*}} line:34:6 test_five 'void (int, int, int)' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:34 used z 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: `-OMPTargetDirective {{.*}} -// CHECK-NEXT: |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: `-CapturedStmt {{.*}} -// CHECK-NEXT: |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-OMPTeamsDistributeParallelForDirective {{.*}} -// CHECK-NEXT: | | | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | |-value: Int 2 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' -// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' -// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} col:5 implicit 'int &' -// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} col:27 implicit 'int &' -// CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:35:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:5 implicit 'int &' -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int &' -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:5 implicit 'int &' -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:27 implicit 'int &' -// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-OMPCapturedExprDecl {{.*}} col:25 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'long' -// CHECK-NEXT: | | | `-BinaryOperator {{.*}} > 'long' '-' -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'long' '*' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} <> 'long' -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:35:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-OMPTeamsDistributeParallelForDirective {{.*}} -// CHECK-NEXT: | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | |-value: Int 2 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:5 implicit 'int &' -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int &' -// CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:35:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:5 implicit 'int &' -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int &' -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:5 implicit 'int &' -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:27 implicit 'int &' -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.lb. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit used .previous.ub. 'const __size_t':'const unsigned long' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-OMPCapturedExprDecl {{.*}} col:25 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'long' -// CHECK-NEXT: | `-BinaryOperator {{.*}} > 'long' '-' -// CHECK-NEXT: | |-BinaryOperator {{.*}} 'long' '*' -// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} <> 'long' -// CHECK-NEXT: | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fopenmp -ast-dump %s | FileCheck --match-full-lines -implicit-check-not=openmp_structured_block %s + +void test_one(int x) { +#pragma omp target +#pragma omp teams distribute parallel for + for (int i = 0; i < x; i++) + ; +} + +void test_two(int x, int y) { +#pragma omp target +#pragma omp teams distribute parallel for + for (int i = 0; i < x; i++) + for (int i = 0; i < y; i++) + ; +} + +void test_three(int x, int y) { +#pragma omp target +#pragma omp teams distribute parallel for collapse(1) + for (int i = 0; i < x; i++) + for (int i = 0; i < y; i++) + ; +} + +void test_four(int x, int y) { +#pragma omp target +#pragma omp teams distribute parallel for collapse(2) + for (int i = 0; i < x; i++) + for (int i = 0; i < y; i++) + ; +} + +void test_five(int x, int y, int z) { +#pragma omp target +#pragma omp teams distribute parallel for collapse(2) + for (int i = 0; i < x; i++) + for (int i = 0; i < y; i++) + for (int i = 0; i < z; i++) + ; +} + +// CHECK: TranslationUnitDecl {{.*}} <> +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __int128_t '__int128' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} '__int128' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __uint128_t 'unsigned __int128' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'unsigned __int128' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __NSConstantString 'struct __NSConstantString_tag' +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'struct __NSConstantString_tag' +// CHECK-NEXT: | `-Record {{.*}} '__NSConstantString_tag' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __builtin_ms_va_list 'char *' +// CHECK-NEXT: | `-typeDetails: PointerType {{.*}} 'char *' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'char' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __builtin_va_list 'struct __va_list_tag[1]' +// CHECK-NEXT: | `-typeDetails: ConstantArrayType {{.*}} 'struct __va_list_tag[1]' 1 +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'struct __va_list_tag' +// CHECK-NEXT: | `-Record {{.*}} '__va_list_tag' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_one 'void (int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetDirective {{.*}} +// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForDirective {{.*}} +// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *' +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:4:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *' +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:4:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:4:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForDirective {{.*}} +// CHECK-NEXT: | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:4:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:4:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:4:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:5:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_two 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetDirective {{.*}} +// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForDirective {{.*}} +// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *' +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:11:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:11:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:11:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:11:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:11:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *' +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:11:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:11:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:11:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:11:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:11:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForDirective {{.*}} +// CHECK-NEXT: | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:11:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:11:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:11:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:11:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:11:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:12:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_three 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetDirective {{.*}} +// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForDirective {{.*}} +// CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-value: Int 1 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *' +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:19:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:19:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:19:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:19:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:19:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *' +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:19:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:19:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:19:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:19:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:19:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForDirective {{.*}} +// CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | |-value: Int 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:19:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:19:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:19:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:19:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:19:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:20:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_four 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetDirective {{.*}} +// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-OMPTeamsDistributeParallelForDirective {{.*}} +// CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-value: Int 2 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *' +// CHECK-NEXT: | | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:27:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:27:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:27:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:27:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:27:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *' +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'long' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'long' '-' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'long' '*' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} <> 'long' +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:27:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:27:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:27:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:27:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:27:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-OMPTeamsDistributeParallelForDirective {{.*}} +// CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | |-value: Int 2 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:27:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:27:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:27:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:27:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:27:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:28:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'long' +// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'long' '-' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'long' '*' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} <> 'long' +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: `-FunctionDecl {{.*}} test_five 'void (int, int, int)' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used z 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: `-CompoundStmt {{.*}} +// CHECK-NEXT: `-OMPTargetDirective {{.*}} +// CHECK-NEXT: |-OMPFirstprivateClause {{.*}} <> +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: `-CapturedStmt {{.*}} +// CHECK-NEXT: |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | |-OMPTeamsDistributeParallelForDirective {{.*}} +// CHECK-NEXT: | | | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | |-value: Int 2 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' +// CHECK-NEXT: | | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *' +// CHECK-NEXT: | | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:35:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:35:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:35:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:35:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:35:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'long' +// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'long' '-' +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'long' '*' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} <> 'long' +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:35:1) *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:35:1) *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:35:1) *' +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:35:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:35:1)' +// CHECK-NEXT: | | `-Record {{.*}} +// CHECK-NEXT: | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | |-OMPTeamsDistributeParallelForDirective {{.*}} +// CHECK-NEXT: | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | |-value: Int 2 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:35:1) *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:35:1) *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:35:1) *' +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:35:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:35:1)' +// CHECK-NEXT: | | `-Record {{.*}} +// CHECK-NEXT: | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.lb. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit used .previous.ub. 'const __size_t':'const unsigned long' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const __size_t' const +// CHECK-NEXT: | | | `-typeDetails: PredefinedSugarType {{.*}} '__size_t' sugar +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'unsigned long' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-parallel-for.c:36:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'long' +// CHECK-NEXT: | `-BinaryOperator {{.*}} 'long' '-' +// CHECK-NEXT: | |-BinaryOperator {{.*}} 'long' '*' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} <> 'long' +// CHECK-NEXT: | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' diff --git a/clang/test/AST/ast-dump-openmp-teams-distribute-simd.c b/clang/test/AST/ast-dump-openmp-teams-distribute-simd.c index 4b222de60a602..ec3c04bf7c75b 100644 --- a/clang/test/AST/ast-dump-openmp-teams-distribute-simd.c +++ b/clang/test/AST/ast-dump-openmp-teams-distribute-simd.c @@ -1,1223 +1,1942 @@ -// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fopenmp -ast-dump %s | FileCheck --match-full-lines -implicit-check-not=openmp_structured_block %s - -void test_one(int x) { -#pragma omp target -#pragma omp teams distribute simd - for (int i = 0; i < x; i++) - ; -} - -void test_two(int x, int y) { -#pragma omp target -#pragma omp teams distribute simd - for (int i = 0; i < x; i++) - for (int i = 0; i < y; i++) - ; -} - -void test_three(int x, int y) { -#pragma omp target -#pragma omp teams distribute simd collapse(1) - for (int i = 0; i < x; i++) - for (int i = 0; i < y; i++) - ; -} - -void test_four(int x, int y) { -#pragma omp target -#pragma omp teams distribute simd collapse(2) - for (int i = 0; i < x; i++) - for (int i = 0; i < y; i++) - ; -} - -void test_five(int x, int y, int z) { -#pragma omp target -#pragma omp teams distribute simd collapse(2) - for (int i = 0; i < x; i++) - for (int i = 0; i < y; i++) - for (int i = 0; i < z; i++) - ; -} - -// CHECK: TranslationUnitDecl {{.*}} <> -// CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-teams-distribute-simd.c:3:1, line:8:1> line:3:6 test_one 'void (int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-OMPTeamsDistributeSimdDirective {{.*}} -// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:5:1) *const restrict' -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:5:1) *const restrict' -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-OMPTeamsDistributeSimdDirective {{.*}} -// CHECK-NEXT: | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:5:1) *const restrict' -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:4:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:5:1) *const restrict' -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:10:6 test_two 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:26 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-OMPTeamsDistributeSimdDirective {{.*}} -// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:12:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:11:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:12:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:11:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-OMPTeamsDistributeSimdDirective {{.*}} -// CHECK-NEXT: | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:12:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:11:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:12:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:18:6 test_three 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:21 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:28 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-OMPTeamsDistributeSimdDirective {{.*}} -// CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | |-value: Int 1 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:20:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:19:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:20:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:19:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-OMPTeamsDistributeSimdDirective {{.*}} -// CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | | |-value: Int 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:20:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:19:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:20:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:26:6 test_four 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-OMPTeamsDistributeSimdDirective {{.*}} -// CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | |-value: Int 2 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:28:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:27:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:28:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:25 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'long' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'long' '-' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'long' '*' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} <> 'long' -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:27:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-OMPTeamsDistributeSimdDirective {{.*}} -// CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | | |-value: Int 2 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:28:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:27:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:28:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:25 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'long' -// CHECK-NEXT: | | `-BinaryOperator {{.*}} > 'long' '-' -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'long' '*' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} <> 'long' -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-FunctionDecl {{.*}} line:34:6 test_five 'void (int, int, int)' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:34 used z 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: `-OMPTargetDirective {{.*}} -// CHECK-NEXT: |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: `-CapturedStmt {{.*}} -// CHECK-NEXT: |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-OMPTeamsDistributeSimdDirective {{.*}} -// CHECK-NEXT: | | | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | |-value: Int 2 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:36:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:35:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int &' -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:36:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-OMPCapturedExprDecl {{.*}} col:25 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'long' -// CHECK-NEXT: | | | `-BinaryOperator {{.*}} > 'long' '-' -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'long' '*' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} <> 'long' -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:35:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-OMPTeamsDistributeSimdDirective {{.*}} -// CHECK-NEXT: | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | |-value: Int 2 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:36:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:35:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:23 implicit 'int &' -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int &' -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute-simd.c:36:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-OMPCapturedExprDecl {{.*}} col:25 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'long' -// CHECK-NEXT: | `-BinaryOperator {{.*}} > 'long' '-' -// CHECK-NEXT: | |-BinaryOperator {{.*}} 'long' '*' -// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} <> 'long' -// CHECK-NEXT: | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fopenmp -ast-dump %s | FileCheck --match-full-lines -implicit-check-not=openmp_structured_block %s + +void test_one(int x) { +#pragma omp target +#pragma omp teams distribute simd + for (int i = 0; i < x; i++) + ; +} + +void test_two(int x, int y) { +#pragma omp target +#pragma omp teams distribute simd + for (int i = 0; i < x; i++) + for (int i = 0; i < y; i++) + ; +} + +void test_three(int x, int y) { +#pragma omp target +#pragma omp teams distribute simd collapse(1) + for (int i = 0; i < x; i++) + for (int i = 0; i < y; i++) + ; +} + +void test_four(int x, int y) { +#pragma omp target +#pragma omp teams distribute simd collapse(2) + for (int i = 0; i < x; i++) + for (int i = 0; i < y; i++) + ; +} + +void test_five(int x, int y, int z) { +#pragma omp target +#pragma omp teams distribute simd collapse(2) + for (int i = 0; i < x; i++) + for (int i = 0; i < y; i++) + for (int i = 0; i < z; i++) + ; +} + +// CHECK: TranslationUnitDecl {{.*}} <> +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __int128_t '__int128' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} '__int128' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __uint128_t 'unsigned __int128' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'unsigned __int128' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __NSConstantString 'struct __NSConstantString_tag' +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'struct __NSConstantString_tag' +// CHECK-NEXT: | `-Record {{.*}} '__NSConstantString_tag' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __builtin_ms_va_list 'char *' +// CHECK-NEXT: | `-typeDetails: PointerType {{.*}} 'char *' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'char' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __builtin_va_list 'struct __va_list_tag[1]' +// CHECK-NEXT: | `-typeDetails: ConstantArrayType {{.*}} 'struct __va_list_tag[1]' 1 +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'struct __va_list_tag' +// CHECK-NEXT: | `-Record {{.*}} '__va_list_tag' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_one 'void (int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetDirective {{.*}} +// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-OMPTeamsDistributeSimdDirective {{.*}} +// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:5:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:5:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:5:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:4:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:4:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:4:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:5:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:5:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:5:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:4:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:4:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:4:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:4:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-OMPTeamsDistributeSimdDirective {{.*}} +// CHECK-NEXT: | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:5:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:5:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:5:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:4:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:4:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:4:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:4:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:5:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:5:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:5:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:5:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_two 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetDirective {{.*}} +// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-OMPTeamsDistributeSimdDirective {{.*}} +// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:12:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:12:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:12:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:11:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:11:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:11:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:11:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:11:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:12:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:12:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:12:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:11:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:11:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:11:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:11:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:11:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-OMPTeamsDistributeSimdDirective {{.*}} +// CHECK-NEXT: | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:12:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:12:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:12:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:11:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:11:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:11:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:11:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:11:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:12:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:12:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:12:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:12:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_three 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetDirective {{.*}} +// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-OMPTeamsDistributeSimdDirective {{.*}} +// CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-value: Int 1 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:20:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:20:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:20:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:19:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:19:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:19:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:19:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:19:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:20:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:20:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:20:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:19:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:19:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:19:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:19:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:19:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-OMPTeamsDistributeSimdDirective {{.*}} +// CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | |-value: Int 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:20:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:20:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:20:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:19:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:19:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:19:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:19:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:19:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:20:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:20:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:20:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:20:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_four 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetDirective {{.*}} +// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-OMPTeamsDistributeSimdDirective {{.*}} +// CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-value: Int 2 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:28:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:28:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:28:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:27:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:27:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:27:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:27:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:27:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:28:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:28:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:28:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'long' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'long' '-' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'long' '*' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} <> 'long' +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:27:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:27:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:27:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:27:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:27:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-OMPTeamsDistributeSimdDirective {{.*}} +// CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | |-value: Int 2 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:28:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:28:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:28:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:27:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:27:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:27:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:27:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:27:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:28:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:28:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:28:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:28:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'long' +// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'long' '-' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'long' '*' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} <> 'long' +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: `-FunctionDecl {{.*}} test_five 'void (int, int, int)' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used z 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: `-CompoundStmt {{.*}} +// CHECK-NEXT: `-OMPTargetDirective {{.*}} +// CHECK-NEXT: |-OMPFirstprivateClause {{.*}} <> +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: `-CapturedStmt {{.*}} +// CHECK-NEXT: |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | |-OMPTeamsDistributeSimdDirective {{.*}} +// CHECK-NEXT: | | | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | |-value: Int 2 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:36:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:36:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:36:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:36:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:35:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:35:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:35:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:35:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:35:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:36:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:36:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:36:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:36:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'long' +// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'long' '-' +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'long' '*' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} <> 'long' +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:35:1) *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:35:1) *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:35:1) *' +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:35:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:35:1)' +// CHECK-NEXT: | | `-Record {{.*}} +// CHECK-NEXT: | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | |-OMPTeamsDistributeSimdDirective {{.*}} +// CHECK-NEXT: | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | |-value: Int 2 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:36:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:36:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:36:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:36:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:35:1) *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:35:1) *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:35:1) *' +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:35:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:35:1)' +// CHECK-NEXT: | | `-Record {{.*}} +// CHECK-NEXT: | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:36:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:36:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:36:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute-simd.c:36:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'long' +// CHECK-NEXT: | `-BinaryOperator {{.*}} 'long' '-' +// CHECK-NEXT: | |-BinaryOperator {{.*}} 'long' '*' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} <> 'long' +// CHECK-NEXT: | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' diff --git a/clang/test/AST/ast-dump-openmp-teams-distribute.c b/clang/test/AST/ast-dump-openmp-teams-distribute.c index feb802e3e4099..2990621bd8cdc 100644 --- a/clang/test/AST/ast-dump-openmp-teams-distribute.c +++ b/clang/test/AST/ast-dump-openmp-teams-distribute.c @@ -1,1223 +1,1942 @@ -// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fopenmp -ast-dump %s | FileCheck --match-full-lines -implicit-check-not=openmp_structured_block %s - -void test_one(int x) { -#pragma omp target -#pragma omp teams distribute - for (int i = 0; i < x; i++) - ; -} - -void test_two(int x, int y) { -#pragma omp target -#pragma omp teams distribute - for (int i = 0; i < x; i++) - for (int i = 0; i < y; i++) - ; -} - -void test_three(int x, int y) { -#pragma omp target -#pragma omp teams distribute collapse(1) - for (int i = 0; i < x; i++) - for (int i = 0; i < y; i++) - ; -} - -void test_four(int x, int y) { -#pragma omp target -#pragma omp teams distribute collapse(2) - for (int i = 0; i < x; i++) - for (int i = 0; i < y; i++) - ; -} - -void test_five(int x, int y, int z) { -#pragma omp target -#pragma omp teams distribute collapse(2) - for (int i = 0; i < x; i++) - for (int i = 0; i < y; i++) - for (int i = 0; i < z; i++) - ; -} - -// CHECK: TranslationUnitDecl {{.*}} <> -// CHECK: |-FunctionDecl {{.*}} <{{.*}}ast-dump-openmp-teams-distribute.c:3:1, line:8:1> line:3:6 test_one 'void (int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-OMPTeamsDistributeDirective {{.*}} -// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:5:1) *const restrict' -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:4:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:5:1) *const restrict' -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:4:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-OMPTeamsDistributeDirective {{.*}} -// CHECK-NEXT: | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:5:1) *const restrict' -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:4:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:5:1) *const restrict' -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:10:6 test_two 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:19 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:26 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-OMPTeamsDistributeDirective {{.*}} -// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:12:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:11:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:12:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:11:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-OMPTeamsDistributeDirective {{.*}} -// CHECK-NEXT: | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:12:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:11:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:12:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:18:6 test_three 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:21 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:28 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-OMPTeamsDistributeDirective {{.*}} -// CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | |-value: Int 1 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:20:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:19:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:20:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:19:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-OMPTeamsDistributeDirective {{.*}} -// CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | | |-value: Int 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:20:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:19:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:25 implicit 'int &' -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:20:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | `-BinaryOperator {{.*}} > 'int' '-' -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: |-FunctionDecl {{.*}} line:26:6 test_four 'void (int, int)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: | `-CompoundStmt {{.*}} -// CHECK-NEXT: | `-OMPTargetDirective {{.*}} -// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-OMPTeamsDistributeDirective {{.*}} -// CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | |-value: Int 2 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:28:1) *const restrict' -// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:27:1) *const restrict' -// CHECK-NEXT: | | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} col:5 implicit 'int &' -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:28:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} col:25 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'long' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'long' '-' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'long' '*' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} <> 'long' -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:27:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-OMPTeamsDistributeDirective {{.*}} -// CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | | |-value: Int 2 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:28:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:27:1) *const restrict' -// CHECK-NEXT: | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | `-FieldDecl {{.*}} col:5 implicit 'int &' -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:28:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} col:25 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'long' -// CHECK-NEXT: | | `-BinaryOperator {{.*}} > 'long' '-' -// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'long' '*' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} <> 'long' -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-FunctionDecl {{.*}} line:34:6 test_five 'void (int, int, int)' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:20 used x 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:27 used y 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} col:34 used z 'int' -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: `-OMPTargetDirective {{.*}} -// CHECK-NEXT: |-OMPFirstprivateClause {{.*}} <> -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: `-CapturedStmt {{.*}} -// CHECK-NEXT: |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-CapturedStmt {{.*}} -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-OMPTeamsDistributeDirective {{.*}} -// CHECK-NEXT: | | | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | |-value: Int 2 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | | | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | |-<<>> -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:36:1) *const restrict' -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:35:1) *const restrict' -// CHECK-NEXT: | | | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | | | |-FieldDecl {{.*}} col:5 implicit 'int &' -// CHECK-NEXT: | | | | `-FieldDecl {{.*}} col:27 implicit 'int &' -// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | |-<<>> -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:36:1) *const restrict' -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-OMPCapturedExprDecl {{.*}} col:25 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'long' -// CHECK-NEXT: | | | `-BinaryOperator {{.*}} > 'long' '-' -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'long' '*' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} <> 'long' -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:35:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:3 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:5 implicit 'int' -// CHECK-NEXT: | | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int' -// CHECK-NEXT: | | `-OMPCaptureKindAttr {{.*}} <> Implicit {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-OMPTeamsDistributeDirective {{.*}} -// CHECK-NEXT: | | |-OMPCollapseClause {{.*}} -// CHECK-NEXT: | | | `-ConstantExpr {{.*}} 'int' -// CHECK-NEXT: | | | |-value: Int 2 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 2 -// CHECK-NEXT: | | `-CapturedStmt {{.*}} -// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | |-<<>> -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:36:1) *const restrict' -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:35:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | |-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:3 implicit 'int &' -// CHECK-NEXT: | | |-FieldDecl {{.*}} col:5 implicit 'int &' -// CHECK-NEXT: | | `-FieldDecl {{.*}} col:27 implicit 'int &' -// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | | |-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-ForStmt {{.*}} -// CHECK-NEXT: | | | |-DeclStmt {{.*}} -// CHECK-NEXT: | | | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | |-<<>> -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' -// CHECK-NEXT: | | | `-NullStmt {{.*}} -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams-distribute.c:36:1) *const restrict' -// CHECK-NEXT: | | |-VarDecl {{.*}} col:12 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | |-VarDecl {{.*}} col:14 used i 'int' cinit -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | `-VarDecl {{.*}} col:16 used i 'int' cinit -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | |-OMPCapturedExprDecl {{.*}} col:23 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | |-OMPCapturedExprDecl {{.*}} col:25 implicit used .capture_expr. 'int' -// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture -// CHECK-NEXT: | `-OMPCapturedExprDecl {{.*}} > col:3 implicit used .capture_expr. 'long' -// CHECK-NEXT: | `-BinaryOperator {{.*}} > 'long' '-' -// CHECK-NEXT: | |-BinaryOperator {{.*}} 'long' '*' -// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'long' -// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'int' '/' -// CHECK-NEXT: | | |-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' -// CHECK-NEXT: | | | `-ParenExpr {{.*}} 'int' -// CHECK-NEXT: | | | `-BinaryOperator {{.*}} > 'int' '+' -// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '-' -// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 -// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 -// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} <> 'long' -// CHECK-NEXT: | `-IntegerLiteral {{.*}} <> 'int' 1 -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fopenmp -ast-dump %s | FileCheck --match-full-lines -implicit-check-not=openmp_structured_block %s + +void test_one(int x) { +#pragma omp target +#pragma omp teams distribute + for (int i = 0; i < x; i++) + ; +} + +void test_two(int x, int y) { +#pragma omp target +#pragma omp teams distribute + for (int i = 0; i < x; i++) + for (int i = 0; i < y; i++) + ; +} + +void test_three(int x, int y) { +#pragma omp target +#pragma omp teams distribute collapse(1) + for (int i = 0; i < x; i++) + for (int i = 0; i < y; i++) + ; +} + +void test_four(int x, int y) { +#pragma omp target +#pragma omp teams distribute collapse(2) + for (int i = 0; i < x; i++) + for (int i = 0; i < y; i++) + ; +} + +void test_five(int x, int y, int z) { +#pragma omp target +#pragma omp teams distribute collapse(2) + for (int i = 0; i < x; i++) + for (int i = 0; i < y; i++) + for (int i = 0; i < z; i++) + ; +} + +// CHECK: TranslationUnitDecl {{.*}} <> +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __int128_t '__int128' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} '__int128' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __uint128_t 'unsigned __int128' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'unsigned __int128' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __NSConstantString 'struct __NSConstantString_tag' +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'struct __NSConstantString_tag' +// CHECK-NEXT: | `-Record {{.*}} '__NSConstantString_tag' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __builtin_ms_va_list 'char *' +// CHECK-NEXT: | `-typeDetails: PointerType {{.*}} 'char *' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'char' +// CHECK-NEXT: |-TypedefDecl {{.*}} <> implicit __builtin_va_list 'struct __va_list_tag[1]' +// CHECK-NEXT: | `-typeDetails: ConstantArrayType {{.*}} 'struct __va_list_tag[1]' 1 +// CHECK-NEXT: | `-typeDetails: RecordType {{.*}} 'struct __va_list_tag' +// CHECK-NEXT: | `-Record {{.*}} '__va_list_tag' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_one 'void (int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetDirective {{.*}} +// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-OMPTeamsDistributeDirective {{.*}} +// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:5:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:5:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:5:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:4:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:4:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:4:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:4:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:5:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:5:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:5:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:4:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:4:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:4:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:4:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-OMPTeamsDistributeDirective {{.*}} +// CHECK-NEXT: | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:5:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:5:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:5:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:5:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:4:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:4:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:4:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:4:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:4:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:5:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:5:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:5:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:5:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:5:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_two 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetDirective {{.*}} +// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-OMPTeamsDistributeDirective {{.*}} +// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:12:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:12:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:12:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:11:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:11:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:11:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:11:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:11:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:12:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:12:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:12:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:11:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:11:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:11:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:11:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:11:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-OMPTeamsDistributeDirective {{.*}} +// CHECK-NEXT: | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:12:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:12:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:12:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:12:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:11:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:11:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:11:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:11:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:11:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:12:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:12:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:12:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:12:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:12:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_three 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetDirective {{.*}} +// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-OMPTeamsDistributeDirective {{.*}} +// CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-value: Int 1 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:20:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:20:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:20:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:19:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:19:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:19:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:19:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:19:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:20:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:20:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:20:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:19:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:19:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:19:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:19:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:19:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-OMPTeamsDistributeDirective {{.*}} +// CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | |-value: Int 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:20:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:20:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:20:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:20:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:19:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:19:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:19:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:19:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:19:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:20:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:20:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:20:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:20:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:20:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: |-FunctionDecl {{.*}} test_four 'void (int, int)' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-OMPTargetDirective {{.*}} +// CHECK-NEXT: | |-OMPFirstprivateClause {{.*}} <> +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-CapturedStmt {{.*}} +// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-OMPTeamsDistributeDirective {{.*}} +// CHECK-NEXT: | | | | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-value: Int 2 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | | | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:28:1) *' +// CHECK-NEXT: | | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:28:1)' +// CHECK-NEXT: | | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:28:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:27:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:27:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:27:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:27:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:27:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:28:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:28:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:28:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'long' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'long' '-' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'long' '*' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} <> 'long' +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:27:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:27:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:27:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:27:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:27:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-OMPTeamsDistributeDirective {{.*}} +// CHECK-NEXT: | | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | |-value: Int 2 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:28:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:28:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:28:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:28:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:27:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:27:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:27:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:27:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:27:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:28:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:28:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:28:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:28:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:28:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'long' +// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'long' '-' +// CHECK-NEXT: | | |-BinaryOperator {{.*}} 'long' '*' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} <> 'long' +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: `-FunctionDecl {{.*}} test_five 'void (int, int, int)' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used x 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used y 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: |-ParmVarDecl {{.*}} used z 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: `-CompoundStmt {{.*}} +// CHECK-NEXT: `-OMPTargetDirective {{.*}} +// CHECK-NEXT: |-OMPFirstprivateClause {{.*}} <> +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: `-CapturedStmt {{.*}} +// CHECK-NEXT: |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | |-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | |-OMPTeamsDistributeDirective {{.*}} +// CHECK-NEXT: | | | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | |-value: Int 2 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | | | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | |-<<>> +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:36:1) *const restrict' +// CHECK-NEXT: | | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:36:1) *' +// CHECK-NEXT: | | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:36:1)' +// CHECK-NEXT: | | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:36:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:35:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:35:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:35:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:35:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:35:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | |-<<>> +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:36:1) *const restrict' +// CHECK-NEXT: | | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:36:1) *' +// CHECK-NEXT: | | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:36:1)' +// CHECK-NEXT: | | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:36:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'long' +// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'long' '-' +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'long' '*' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | `-ImplicitCastExpr {{.*}} <> 'long' +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .part_id. 'const int *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .privates. 'void *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void (*const restrict)(void *const restrict, ...)' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void (*)(void *const restrict, ...)' +// CHECK-NEXT: | | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-QualType {{.*}} 'void (void *const restrict, ...)' +// CHECK-NEXT: | | `-typeDetails: FunctionProtoType {{.*}} 'void (void *const restrict, ...)' variadic cdecl +// CHECK-NEXT: | | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit .task_t. 'void *const' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'void *const' const +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'void *' +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'void' +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:35:1) *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:35:1) *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:35:1) *' +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:35:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:35:1)' +// CHECK-NEXT: | | `-Record {{.*}} +// CHECK-NEXT: | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | | `-FieldDecl {{.*}} implicit 'int' +// CHECK-NEXT: | | `-attrDetails: OMPCaptureKindAttr {{.*}} <> Implicit 36 +// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | |-OMPTeamsDistributeDirective {{.*}} +// CHECK-NEXT: | | |-OMPCollapseClause {{.*}} +// CHECK-NEXT: | | | `-ConstantExpr {{.*}} 'int' +// CHECK-NEXT: | | | |-value: Int 2 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | | `-CapturedStmt {{.*}} +// CHECK-NEXT: | | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | |-<<>> +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:36:1) *const restrict' +// CHECK-NEXT: | | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:36:1) *' +// CHECK-NEXT: | | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:36:1)' +// CHECK-NEXT: | | | | | `-Record {{.*}} +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:36:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:35:1) *const restrict' +// CHECK-NEXT: | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:35:1) *const restrict' const __restrict +// CHECK-NEXT: | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:35:1) *' +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:35:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:35:1)' +// CHECK-NEXT: | | `-Record {{.*}} +// CHECK-NEXT: | |-RecordDecl {{.*}} implicit struct definition +// CHECK-NEXT: | | |-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | |-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | | `-FieldDecl {{.*}} implicit 'int &' +// CHECK-NEXT: | |-CapturedDecl {{.*}} <> nothrow +// CHECK-NEXT: | | |-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-ForStmt {{.*}} +// CHECK-NEXT: | | | |-DeclStmt {{.*}} +// CHECK-NEXT: | | | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | |-<<>> +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '<' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | | | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'i' 'int' +// CHECK-NEXT: | | | `-NullStmt {{.*}} +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .global_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit .bound_tid. 'const int *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'const int *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'const int *' +// CHECK-NEXT: | | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} implicit __context 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:36:1) *const restrict' +// CHECK-NEXT: | | | |-qualTypeDetail: QualType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:36:1) *const restrict' const __restrict +// CHECK-NEXT: | | | | `-typeDetails: PointerType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:36:1) *' +// CHECK-NEXT: | | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:36:1)' +// CHECK-NEXT: | | | | `-Record {{.*}} +// CHECK-NEXT: | | | `-typeDetails: RecordType {{.*}} 'struct (unnamed at C:\Precision\sei\llvm-patch\llvm-project\clang\test\AST\ast-dump-openmp-teams-distribute.c:36:1)' +// CHECK-NEXT: | | | `-Record {{.*}} +// CHECK-NEXT: | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | |-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-VarDecl {{.*}} used i 'int' cinit +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | |-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'int' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' refers_to_enclosing_variable_or_capture +// CHECK-NEXT: | `-OMPCapturedExprDecl {{.*}} implicit used .capture_expr. 'long' +// CHECK-NEXT: | `-BinaryOperator {{.*}} 'long' '-' +// CHECK-NEXT: | |-BinaryOperator {{.*}} 'long' '*' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'long' +// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'int' '/' +// CHECK-NEXT: | | |-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | | `-DeclRefExpr {{.*}} 'int' lvalue OMPCapturedExpr {{.*}} '.capture_expr.' 'int' +// CHECK-NEXT: | | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | | |-BinaryOperator {{.*}} 'int' '-' +// CHECK-NEXT: | | | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: | | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} <> 'long' +// CHECK-NEXT: | `-IntegerLiteral {{.*}} <> 'int' 1 +// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK-NEXT: |-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'z' 'int' diff --git a/clang/test/AST/ast-dump-openmp-teams.c b/clang/test/AST/ast-dump-openmp-teams.c index 8889af791d450..218bcac2952f9 100644 --- a/clang/test/AST/ast-dump-openmp-teams.c +++ b/clang/test/AST/ast-dump-openmp-teams.c @@ -19,38 +19,38 @@ void test(void) { // CHECK-NEXT: | | `-CapturedDecl {{.*}} <> nothrow // CHECK-NEXT: | | |-NullStmt {{.*}} // CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | | `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams.c:5:1) *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams.c:4:1) *const restrict' -// CHECK-NEXT: | |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | | `-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-NullStmt {{.*}} -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams.c:5:1) *const restrict' -// CHECK-NEXT: |-AlwaysInlineAttr {{.*}} <> Implicit __forceinline -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams.c:4:1) *const restrict' -// CHECK-NEXT: |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | `-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: |-OMPTeamsDirective {{.*}} -// CHECK-NEXT: | `-CapturedStmt {{.*}} -// CHECK-NEXT: | `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: | |-NullStmt {{.*}} -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: | `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams.c:5:1) *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams.c:4:1) *const restrict' -// CHECK-NEXT: |-RecordDecl {{.*}} col:1 implicit struct definition -// CHECK-NEXT: | `-CapturedRecordAttr {{.*}} <> Implicit -// CHECK-NEXT: `-CapturedDecl {{.*}} <> nothrow -// CHECK-NEXT: |-NullStmt {{.*}} -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' -// CHECK-NEXT: |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' -// CHECK-NEXT: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams.c:5:1) *const restrict' +// CHECK: | | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | | `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams.c:5:1) *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams.c:4:1) *const restrict' +// CHECK: | |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | | `-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-NullStmt {{.*}} +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams.c:5:1) *const restrict' +// CHECK: |-attrDetails: AlwaysInlineAttr {{.*}} <> Implicit __forceinline +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .part_id. 'const int *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .privates. 'void *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .copy_fn. 'void (*const restrict)(void *const restrict, ...)' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .task_t. 'void *const' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams.c:4:1) *const restrict' +// CHECK: |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | `-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: `-CapturedDecl {{.*}} <> nothrow +// CHECK: |-OMPTeamsDirective {{.*}} +// CHECK: | `-CapturedStmt {{.*}} +// CHECK: | `-CapturedDecl {{.*}} <> nothrow +// CHECK: | |-NullStmt {{.*}} +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: | |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: | `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams.c:5:1) *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams.c:4:1) *const restrict' +// CHECK: |-RecordDecl {{.*}} col:1 implicit struct definition +// CHECK: | `-attrDetails: CapturedRecordAttr {{.*}} <> Implicit +// CHECK: `-CapturedDecl {{.*}} <> nothrow +// CHECK: |-NullStmt {{.*}} +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .global_tid. 'const int *const restrict' +// CHECK: |-ImplicitParamDecl {{.*}} col:1 implicit .bound_tid. 'const int *const restrict' +// CHECK: `-ImplicitParamDecl {{.*}} col:1 implicit __context 'struct (unnamed at {{.*}}ast-dump-openmp-teams.c:5:1) *const restrict' diff --git a/clang/test/AST/ast-dump-overloaded-operators.cpp b/clang/test/AST/ast-dump-overloaded-operators.cpp index 639a0d9874eb0..f4a64362fe435 100644 --- a/clang/test/AST/ast-dump-overloaded-operators.cpp +++ b/clang/test/AST/ast-dump-overloaded-operators.cpp @@ -20,25 +20,25 @@ void test() { // CHECK: |-EnumDecl {{.*}} <{{.*}}ast-dump-overloaded-operators.cpp:10:1, col:9> col:6{{( imported)?}} referenced E // CHECK-NEXT: |-FunctionDecl {{.*}} col:6{{( imported)?}} used operator+ 'void (E, E)' // CHECK-NEXT: | |-ParmVarDecl {{.*}} col:17{{( imported)?}} 'E' -// CHECK-NEXT: | `-ParmVarDecl {{.*}} col:19{{( imported)?}} 'E' -// CHECK-NEXT: |-FunctionDecl {{.*}} col:6{{( imported)?}} used operator, 'void (E, E)' -// CHECK-NEXT: | |-ParmVarDecl {{.*}} col:17{{( imported)?}} 'E' -// CHECK-NEXT: | `-ParmVarDecl {{.*}} col:19{{( imported)?}} 'E' -// CHECK-NEXT: `-FunctionDecl {{.*}} line:14:6{{( imported)?}} test 'void ()' -// CHECK-NEXT: `-CompoundStmt {{.*}} -// CHECK-NEXT: |-DeclStmt {{.*}} -// CHECK-NEXT: | `-VarDecl {{.*}} col:5{{( imported)?}} used e 'E' -// CHECK-NEXT: |-CXXOperatorCallExpr {{.*}} 'void' '+' -// CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'void (*)(E, E)' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'void (E, E)' lvalue Function {{.*}} 'operator+' 'void (E, E)' -// CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'E' -// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'E' lvalue Var {{.*}} 'e' 'E' -// CHECK-NEXT: | `-ImplicitCastExpr {{.*}} 'E' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'E' lvalue Var {{.*}} 'e' 'E' -// CHECK-NEXT: `-CXXOperatorCallExpr {{.*}} 'void' ',' -// CHECK-NEXT: |-ImplicitCastExpr {{.*}} 'void (*)(E, E)' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'void (E, E)' lvalue Function {{.*}} 'operator,' 'void (E, E)' -// CHECK-NEXT: |-ImplicitCastExpr {{.*}} 'E' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'E' lvalue Var {{.*}} 'e' 'E' -// CHECK-NEXT: `-ImplicitCastExpr {{.*}} 'E' -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'E' lvalue Var {{.*}} 'e' 'E' +// CHECK: | `-ParmVarDecl {{.*}} col:19{{( imported)?}} 'E' +// CHECK: |-FunctionDecl {{.*}} col:6{{( imported)?}} used operator, 'void (E, E)' +// CHECK: | |-ParmVarDecl {{.*}} col:17{{( imported)?}} 'E' +// CHECK: | `-ParmVarDecl {{.*}} col:19{{( imported)?}} 'E' +// CHECK: `-FunctionDecl {{.*}} line:14:6{{( imported)?}} test 'void ()' +// CHECK: `-CompoundStmt {{.*}} +// CHECK: |-DeclStmt {{.*}} +// CHECK: | `-VarDecl {{.*}} col:5{{( imported)?}} used e 'E' +// CHECK: |-CXXOperatorCallExpr {{.*}} 'void' '+' +// CHECK: | |-ImplicitCastExpr {{.*}} 'void (*)(E, E)' +// CHECK: | | `-DeclRefExpr {{.*}} 'void (E, E)' lvalue Function {{.*}} 'operator+' 'void (E, E)' +// CHECK: | |-ImplicitCastExpr {{.*}} 'E' +// CHECK: | | `-DeclRefExpr {{.*}} 'E' lvalue Var {{.*}} 'e' 'E' +// CHECK: | `-ImplicitCastExpr {{.*}} 'E' +// CHECK: | `-DeclRefExpr {{.*}} 'E' lvalue Var {{.*}} 'e' 'E' +// CHECK: `-CXXOperatorCallExpr {{.*}} 'void' ',' +// CHECK: |-ImplicitCastExpr {{.*}} 'void (*)(E, E)' +// CHECK: | `-DeclRefExpr {{.*}} 'void (E, E)' lvalue Function {{.*}} 'operator,' 'void (E, E)' +// CHECK: |-ImplicitCastExpr {{.*}} 'E' +// CHECK: | `-DeclRefExpr {{.*}} 'E' lvalue Var {{.*}} 'e' 'E' +// CHECK: `-ImplicitCastExpr {{.*}} 'E' +// CHECK: `-DeclRefExpr {{.*}} 'E' lvalue Var {{.*}} 'e' 'E' diff --git a/clang/test/AST/ast-dump-pack-indexing-crash.cpp b/clang/test/AST/ast-dump-pack-indexing-crash.cpp index 0b0c0b572b5e6..dd71e5d99e033 100644 --- a/clang/test/AST/ast-dump-pack-indexing-crash.cpp +++ b/clang/test/AST/ast-dump-pack-indexing-crash.cpp @@ -16,10 +16,10 @@ void not_pack() { // CHECK: FunctionDecl {{.*}} not_pack 'void ()' // CHECK: DeclStmt {{.*}} // CHECK: DeclStmt {{.*}} -// CHECK-NEXT: VarDecl {{.*}} a 'NotAPack...{{.*}}' -// CHECK-NEXT: DeclStmt {{.*}} -// CHECK-NEXT: VarDecl {{.*}} 'T...{{.*}}' -// CHECK-NEXT: DeclStmt {{.*}} -// CHECK-NEXT: VarDecl {{.*}} c 'Tp...{{.*}}' +// CHECK: VarDecl {{.*}} a 'NotAPack...{{.*}}' +// CHECK: DeclStmt {{.*}} +// CHECK: VarDecl {{.*}} 'T...{{.*}}' +// CHECK: DeclStmt {{.*}} +// CHECK: VarDecl {{.*}} c 'Tp...{{.*}}' } diff --git a/clang/test/AST/ast-dump-ppc-types.c b/clang/test/AST/ast-dump-ppc-types.c index 1c860c268e0ec..e9a78c317f0a6 100644 --- a/clang/test/AST/ast-dump-ppc-types.c +++ b/clang/test/AST/ast-dump-ppc-types.c @@ -18,11 +18,11 @@ // ensure the types are target-dependent. // CHECK: TypedefDecl {{.*}} implicit __dmr1024 '__dmr1024' -// CHECK: `-BuiltinType {{.*}} '__dmr1024' +// CHECK: `-typeDetails: BuiltinType {{.*}} '__dmr1024' // CHECK: TypedefDecl {{.*}} implicit __vector_quad '__vector_quad' -// CHECK-NEXT: -BuiltinType {{.*}} '__vector_quad' +// CHECK-NEXT: -typeDetails: BuiltinType {{.*}} '__vector_quad' // CHECK: TypedefDecl {{.*}} implicit __vector_pair '__vector_pair' -// CHECK-NEXT: -BuiltinType {{.*}} '__vector_pair' +// CHECK-NEXT: -typeDetails: BuiltinType {{.*}} '__vector_pair' // CHECK-X86_64-NOT: __dmr1024 // CHECK-X86_64-NOT: __vector_quad diff --git a/clang/test/AST/ast-dump-pragma-json.c b/clang/test/AST/ast-dump-pragma-json.c index c2ab154e6402b..8528e1ad4caf1 100644 --- a/clang/test/AST/ast-dump-pragma-json.c +++ b/clang/test/AST/ast-dump-pragma-json.c @@ -1,485 +1,515 @@ -// RUN: %clang_cc1 -triple x86_64-unknown-unknown -ast-dump=json %s | FileCheck %s - -float func_16(float x, float y) { - #pragma STDC FENV_ROUND FE_TOWARDZERO - if (x < 0) { - #pragma STDC FENV_ROUND FE_UPWARD - return x - y; - } - return x + y; -} - -// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py -// using --filters=CompoundStmt - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 116, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 249, -// CHECK-NEXT: "line": 10, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "fpoptions": { -// CHECK-NEXT: "ConstRoundingMode": 0 -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IfStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 160, -// CHECK-NEXT: "line": 5, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 231, -// CHECK-NEXT: "line": 8, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 164, -// CHECK-NEXT: "line": 5, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 168, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "<", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 164, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 164, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 164, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 164, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 168, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 168, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralToFloating", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 168, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 168, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 171, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 231, -// CHECK-NEXT: "line": 8, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "fpoptions": { -// CHECK-NEXT: "ConstRoundingMode": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ReturnStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 215, -// CHECK-NEXT: "line": 7, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 226, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 222, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 226, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "-", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 222, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 222, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 222, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 222, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 226, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 226, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 226, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 226, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "y", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ReturnStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 235, -// CHECK-NEXT: "line": 9, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 246, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 242, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 246, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "+", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 242, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 242, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 242, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 242, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 246, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 246, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 246, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 246, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "y", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -ast-dump=json %s | FileCheck %s + +float func_16(float x, float y) { + #pragma STDC FENV_ROUND FE_TOWARDZERO + if (x < 0) { + #pragma STDC FENV_ROUND FE_UPWARD + return x - y; + } + return x + y; +} + +// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py +// using --filters=CompoundStmt + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "line": 10, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "fpoptions": { +// CHECK-NEXT: "ConstRoundingMode": 0 +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IfStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "line": 5, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "line": 8, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "line": 5, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "<", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "fpp" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralToFloating", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "line": 8, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "fpoptions": { +// CHECK-NEXT: "ConstRoundingMode": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ReturnStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "line": 7, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "-", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "fpp" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "y", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "fpp" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ReturnStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "line": 9, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "+", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "fpp" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": {{.*}}, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "y", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "fpp" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } diff --git a/clang/test/AST/ast-dump-pragma-unroll.cpp b/clang/test/AST/ast-dump-pragma-unroll.cpp index f9c254b803ff2..19bdd5035164c 100644 --- a/clang/test/AST/ast-dump-pragma-unroll.cpp +++ b/clang/test/AST/ast-dump-pragma-unroll.cpp @@ -2,10 +2,10 @@ using size_t = unsigned long long; -// CHECK: LoopHintAttr {{.*}} Implicit unroll UnrollCount Numeric -// CHECK: LoopHintAttr {{.*}} Implicit unroll UnrollCount Numeric -// CHECK: LoopHintAttr {{.*}} Implicit unroll Unroll Disable -// CHECK: LoopHintAttr {{.*}} Implicit unroll Unroll Disable +// CHECK: attrDetails: LoopHintAttr {{.*}} Implicit unroll UnrollCount Numeric +// CHECK: attrDetails: LoopHintAttr {{.*}} Implicit unroll UnrollCount Numeric +// CHECK: attrDetails: LoopHintAttr {{.*}} Implicit unroll Unroll Disable +// CHECK: attrDetails: LoopHintAttr {{.*}} Implicit unroll Unroll Disable template int value_dependent(int n) { constexpr int N = 100; diff --git a/clang/test/AST/ast-dump-record-definition-data-json.cpp b/clang/test/AST/ast-dump-record-definition-data-json.cpp index c119089def716..8e79cce55f181 100644 --- a/clang/test/AST/ast-dump-record-definition-data-json.cpp +++ b/clang/test/AST/ast-dump-record-definition-data-json.cpp @@ -1,5323 +1,5985 @@ -// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fclang-abi-compat=7.0 -std=c++17 -ast-dump=json %s | FileCheck %s - -void f() { - auto IsNotGenericLambda = [](){}; - auto IsGenericLambda = [](auto){}; -} - -struct CanPassInRegisters { - CanPassInRegisters(const CanPassInRegisters&) = default; -}; - -struct CantPassInRegisters { - CantPassInRegisters(const CantPassInRegisters&) = delete; -}; - -struct IsEmpty { -}; - -struct IsNotEmpty { - int a; -}; - -struct IsAggregate { - int a; -}; - -struct IsNotAggregate { -private: - int a; -}; - -struct IsStandardLayout { - void f(); -}; - -struct IsNotStandardLayout { - virtual void f(); -}; - -struct IsTriviallyCopyable { -}; - -struct IsNotTriviallyCopyable { - IsNotTriviallyCopyable(const IsNotTriviallyCopyable&) {} -}; - -struct IsPOD { - int a; -}; - -struct IsNotPOD { - int &a; -}; - -struct IsTrivial { - IsTrivial() = default; -}; - -struct IsNotTrivial { - IsNotTrivial() {} -}; - -struct IsPolymorphic { - virtual void f(); -}; - -struct IsNotPolymorphic { - void f(); -}; - -struct IsAbstract { - virtual void f() = 0; -}; - -struct IsNotAbstract { - virtual void f(); -}; - -struct IsLiteral { - ~IsLiteral() = default; -}; - -struct IsNotLiteral { - ~IsNotLiteral() {} -}; - -struct HasUserDeclaredConstructor { - HasUserDeclaredConstructor() {} -}; - -struct HasNoUserDeclaredConstructor { -}; - -struct HasConstexprNonCopyMoveConstructor { - constexpr HasConstexprNonCopyMoveConstructor() {} -}; - -struct HasNoConstexprNonCopyMoveConstructor { - HasNoConstexprNonCopyMoveConstructor() {} -}; - -struct HasMutableFields { - mutable int i; -}; - -struct HasNoMutableFields { - int i; -}; - -struct HasVariantMembers { - union { - int i; - }; -}; - -struct HasNoVariantMembers { -}; - -struct AllowsConstDefaultInit { - int i = 12; -}; - -struct DoesNotAllowConstDefaultInit { - int i; -}; - -// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py -// using --filters=CXXRecordDecl - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "name": "__NSConstantString_tag" -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "name": "__va_list_tag" -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 157, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 157, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 157, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "tagUsed": "class", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLambda": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": {}, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 157, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 160, -// CHECK-NEXT: "col": 32, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 162, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "operator()", -// CHECK-NEXT: "mangledName": "_ZZ1fvENK3$_0clEv", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void () const" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 161, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 162, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConversionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 157, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 157, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 162, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator void (*)()", -// CHECK-NEXT: "mangledName": "_ZZ1fvENK3$_0cvPFvvEEv", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (*() const noexcept)()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 157, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 157, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 162, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__invoke", -// CHECK-NEXT: "mangledName": "_ZZ1fvEN3$_08__invokeEv", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "storageClass": "static", -// CHECK-NEXT: "inline": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDestructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 157, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 157, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 157, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "~(lambda at {{.*}}:4:29)", -// CHECK-NEXT: "mangledName": "_ZZ1fvEN3$_0D1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void () noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "explicitlyDefaulted": "default" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 190, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 190, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 190, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "tagUsed": "class", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isGenericLambda": true, -// CHECK-NEXT: "isLambda": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": {}, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionTemplateDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 190, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 199, -// CHECK-NEXT: "col": 35, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "operator()", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TemplateTypeParmDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 197, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 193, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 197, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "auto:1", -// CHECK-NEXT: "tagUsed": "class", -// CHECK-NEXT: "depth": 0, -// CHECK-NEXT: "index": 0 -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 190, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 197, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 199, -// CHECK-NEXT: "col": 35, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "operator()", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto (auto) const" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 197, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 193, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 193, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 198, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 199, -// CHECK-NEXT: "col": 35, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionTemplateDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 190, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 199, -// CHECK-NEXT: "col": 35, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator auto (*)(type-parameter-0-0)", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TemplateTypeParmDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 197, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 193, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 197, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "auto:1", -// CHECK-NEXT: "tagUsed": "class", -// CHECK-NEXT: "depth": 0, -// CHECK-NEXT: "index": 0 -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConversionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 190, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 190, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 199, -// CHECK-NEXT: "col": 35, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator auto (*)(type-parameter-0-0)", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto (*() const noexcept)(auto)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionTemplateDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 190, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 199, -// CHECK-NEXT: "col": 35, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__invoke", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TemplateTypeParmDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 197, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 193, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 197, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "auto:1", -// CHECK-NEXT: "tagUsed": "class", -// CHECK-NEXT: "depth": 0, -// CHECK-NEXT: "index": 0 -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 190, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 190, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 199, -// CHECK-NEXT: "col": 35, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__invoke", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto (auto)" -// CHECK-NEXT: }, -// CHECK-NEXT: "storageClass": "static", -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 197, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 193, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 193, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "auto" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDestructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 190, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 190, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 190, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "~(lambda at {{.*}}:5:26)", -// CHECK-NEXT: "mangledName": "_ZZ1fvEN3$_1D1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void () noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "explicitlyDefaulted": "default" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 212, -// CHECK-NEXT: "line": 8, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 18 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 205, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 292, -// CHECK-NEXT: "line": 10, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "CanPassInRegisters", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "trivial": true, -// CHECK-NEXT: "userDeclared": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasUserDeclaredConstructor": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": {}, -// CHECK-NEXT: "moveCtor": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 212, -// CHECK-NEXT: "line": 8, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 18 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 205, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 212, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 18 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "CanPassInRegisters", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConstructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 235, -// CHECK-NEXT: "line": 9, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 18 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 235, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 18 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 289, -// CHECK-NEXT: "col": 57, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "CanPassInRegisters", -// CHECK-NEXT: "mangledName": "_ZN18CanPassInRegistersC1ERKS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (const CanPassInRegisters &)" -// CHECK-NEXT: }, -// CHECK-NEXT: "constexpr": true, -// CHECK-NEXT: "explicitlyDefaulted": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 279, -// CHECK-NEXT: "col": 47, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 254, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 278, -// CHECK-NEXT: "col": 46, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const CanPassInRegisters &" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 303, -// CHECK-NEXT: "line": 12, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 296, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 385, -// CHECK-NEXT: "line": 14, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "CantPassInRegisters", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "trivial": true, -// CHECK-NEXT: "userDeclared": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasUserDeclaredConstructor": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": {}, -// CHECK-NEXT: "moveCtor": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 303, -// CHECK-NEXT: "line": 12, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 296, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 303, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "CantPassInRegisters", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConstructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 327, -// CHECK-NEXT: "line": 13, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 327, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 382, -// CHECK-NEXT: "col": 58, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "CantPassInRegisters", -// CHECK-NEXT: "mangledName": "_ZN19CantPassInRegistersC1ERKS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (const CantPassInRegisters &)" -// CHECK-NEXT: }, -// CHECK-NEXT: "explicitlyDeleted": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 373, -// CHECK-NEXT: "col": 49, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 347, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 372, -// CHECK-NEXT: "col": 48, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const CantPassInRegisters &" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 396, -// CHECK-NEXT: "line": 16, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 7 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 389, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 406, -// CHECK-NEXT: "line": 17, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "IsEmpty", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 396, -// CHECK-NEXT: "line": 16, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 7 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 389, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 396, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 7 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "IsEmpty", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 417, -// CHECK-NEXT: "line": 19, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 410, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 439, -// CHECK-NEXT: "line": 21, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "IsNotEmpty", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 417, -// CHECK-NEXT: "line": 19, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 410, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 417, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "IsNotEmpty", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 436, -// CHECK-NEXT: "line": 20, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 432, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 436, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 450, -// CHECK-NEXT: "line": 23, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 11 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 443, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 473, -// CHECK-NEXT: "line": 25, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "IsAggregate", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 450, -// CHECK-NEXT: "line": 23, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 11 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 443, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 450, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 11 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "IsAggregate", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 470, -// CHECK-NEXT: "line": 24, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 466, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 470, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 484, -// CHECK-NEXT: "line": 27, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 14 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 477, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 519, -// CHECK-NEXT: "line": 30, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "IsNotAggregate", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 484, -// CHECK-NEXT: "line": 27, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 14 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 477, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 484, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 14 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "IsNotAggregate", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "AccessSpecDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 501, -// CHECK-NEXT: "line": 28, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 7 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 501, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 7 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 508, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "access": "private" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 516, -// CHECK-NEXT: "line": 29, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 512, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 516, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 530, -// CHECK-NEXT: "line": 32, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 523, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 561, -// CHECK-NEXT: "line": 34, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "IsStandardLayout", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 530, -// CHECK-NEXT: "line": 32, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 523, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 530, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "IsStandardLayout", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 556, -// CHECK-NEXT: "line": 33, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 551, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 558, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "f", -// CHECK-NEXT: "mangledName": "_ZN16IsStandardLayout1fEv", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 572, -// CHECK-NEXT: "line": 36, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 565, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 614, -// CHECK-NEXT: "line": 38, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "IsNotStandardLayout", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "nonTrivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPolymorphic": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 572, -// CHECK-NEXT: "line": 36, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 565, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 572, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "IsNotStandardLayout", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 609, -// CHECK-NEXT: "line": 37, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 596, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 7 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 611, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "f", -// CHECK-NEXT: "mangledName": "_ZN19IsNotStandardLayout1fEv", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "virtual": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 572, -// CHECK-NEXT: "line": 36, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 572, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 572, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator=", -// CHECK-NEXT: "mangledName": "_ZN19IsNotStandardLayoutaSERKS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "IsNotStandardLayout &(const IsNotStandardLayout &)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true, -// CHECK-NEXT: "explicitlyDefaulted": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 572, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 572, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 572, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const IsNotStandardLayout &" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 572, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 572, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 572, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator=", -// CHECK-NEXT: "mangledName": "_ZN19IsNotStandardLayoutaSEOS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "IsNotStandardLayout &(IsNotStandardLayout &&)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true, -// CHECK-NEXT: "explicitlyDefaulted": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 572, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 572, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 572, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "IsNotStandardLayout &&" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDestructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 572, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 572, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 572, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "~IsNotStandardLayout", -// CHECK-NEXT: "mangledName": "_ZN19IsNotStandardLayoutD1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "explicitlyDefaulted": "default" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 625, -// CHECK-NEXT: "line": 40, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 618, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 647, -// CHECK-NEXT: "line": 41, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "IsTriviallyCopyable", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 625, -// CHECK-NEXT: "line": 40, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 618, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 625, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "IsTriviallyCopyable", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 658, -// CHECK-NEXT: "line": 43, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 22 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 651, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 742, -// CHECK-NEXT: "line": 45, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "IsNotTriviallyCopyable", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "userDeclared": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasUserDeclaredConstructor": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "moveAssign": {}, -// CHECK-NEXT: "moveCtor": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 658, -// CHECK-NEXT: "line": 43, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 22 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 651, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 658, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 22 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "IsNotTriviallyCopyable", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConstructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 685, -// CHECK-NEXT: "line": 44, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 22 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 685, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 22 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 740, -// CHECK-NEXT: "col": 58, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "IsNotTriviallyCopyable", -// CHECK-NEXT: "mangledName": "_ZN22IsNotTriviallyCopyableC1ERKS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (const IsNotTriviallyCopyable &)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 737, -// CHECK-NEXT: "col": 55, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 708, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 736, -// CHECK-NEXT: "col": 54, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const IsNotTriviallyCopyable &" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 739, -// CHECK-NEXT: "col": 57, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 740, -// CHECK-NEXT: "col": 58, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 753, -// CHECK-NEXT: "line": 47, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 746, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 770, -// CHECK-NEXT: "line": 49, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "IsPOD", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 753, -// CHECK-NEXT: "line": 47, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 746, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 753, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "IsPOD", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 767, -// CHECK-NEXT: "line": 48, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 763, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 767, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 781, -// CHECK-NEXT: "line": 51, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 774, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 802, -// CHECK-NEXT: "line": 53, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "IsNotPOD", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 781, -// CHECK-NEXT: "line": 51, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 774, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 781, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "IsNotPOD", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 799, -// CHECK-NEXT: "line": 52, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 794, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 799, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int &" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 813, -// CHECK-NEXT: "line": 55, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 9 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 806, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 850, -// CHECK-NEXT: "line": 57, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "IsTrivial", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "hasUserDeclaredConstructor": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 813, -// CHECK-NEXT: "line": 55, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 9 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 806, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 813, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 9 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "IsTrivial", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConstructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 827, -// CHECK-NEXT: "line": 56, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 9 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 827, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 9 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 847, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "IsTrivial", -// CHECK-NEXT: "mangledName": "_ZN9IsTrivialC1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "constexpr": true, -// CHECK-NEXT: "explicitlyDefaulted": "default" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 861, -// CHECK-NEXT: "line": 59, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 12 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 854, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 896, -// CHECK-NEXT: "line": 61, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "IsNotTrivial", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "userProvided": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasUserDeclaredConstructor": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 861, -// CHECK-NEXT: "line": 59, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 12 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 854, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 861, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 12 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "IsNotTrivial", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConstructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 878, -// CHECK-NEXT: "line": 60, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 12 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 878, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 12 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 894, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "IsNotTrivial", -// CHECK-NEXT: "mangledName": "_ZN12IsNotTrivialC1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 893, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 894, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 907, -// CHECK-NEXT: "line": 63, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 900, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 943, -// CHECK-NEXT: "line": 65, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "IsPolymorphic", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "nonTrivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPolymorphic": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 907, -// CHECK-NEXT: "line": 63, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 900, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 907, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "IsPolymorphic", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 938, -// CHECK-NEXT: "line": 64, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 925, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 7 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 940, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "f", -// CHECK-NEXT: "mangledName": "_ZN13IsPolymorphic1fEv", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "virtual": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 907, -// CHECK-NEXT: "line": 63, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 907, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 907, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator=", -// CHECK-NEXT: "mangledName": "_ZN13IsPolymorphicaSERKS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "IsPolymorphic &(const IsPolymorphic &)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true, -// CHECK-NEXT: "explicitlyDefaulted": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 907, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 907, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 907, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const IsPolymorphic &" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 907, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 907, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 907, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator=", -// CHECK-NEXT: "mangledName": "_ZN13IsPolymorphicaSEOS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "IsPolymorphic &(IsPolymorphic &&)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true, -// CHECK-NEXT: "explicitlyDefaulted": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 907, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 907, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 907, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "IsPolymorphic &&" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDestructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 907, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 907, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 907, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "~IsPolymorphic", -// CHECK-NEXT: "mangledName": "_ZN13IsPolymorphicD1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "explicitlyDefaulted": "default" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 954, -// CHECK-NEXT: "line": 67, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 947, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 985, -// CHECK-NEXT: "line": 69, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "IsNotPolymorphic", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 954, -// CHECK-NEXT: "line": 67, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 947, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 954, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "IsNotPolymorphic", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 980, -// CHECK-NEXT: "line": 68, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 975, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 982, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "f", -// CHECK-NEXT: "mangledName": "_ZN16IsNotPolymorphic1fEv", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 996, -// CHECK-NEXT: "line": 71, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 989, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1033, -// CHECK-NEXT: "line": 73, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "IsAbstract", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "nonTrivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "isAbstract": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPolymorphic": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 996, -// CHECK-NEXT: "line": 71, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 989, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 996, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "IsAbstract", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1024, -// CHECK-NEXT: "line": 72, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1011, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 7 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1030, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "f", -// CHECK-NEXT: "mangledName": "_ZN10IsAbstract1fEv", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "virtual": true, -// CHECK-NEXT: "pure": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 996, -// CHECK-NEXT: "line": 71, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 996, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 996, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator=", -// CHECK-NEXT: "mangledName": "_ZN10IsAbstractaSERKS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "IsAbstract &(const IsAbstract &)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true, -// CHECK-NEXT: "explicitlyDefaulted": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 996, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 996, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 996, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const IsAbstract &" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 996, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 996, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 996, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator=", -// CHECK-NEXT: "mangledName": "_ZN10IsAbstractaSEOS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "IsAbstract &(IsAbstract &&)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true, -// CHECK-NEXT: "explicitlyDefaulted": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 996, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 996, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 996, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "IsAbstract &&" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDestructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 996, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 996, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 996, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "~IsAbstract", -// CHECK-NEXT: "mangledName": "_ZN10IsAbstractD1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "explicitlyDefaulted": "default" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1044, -// CHECK-NEXT: "line": 75, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1037, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1080, -// CHECK-NEXT: "line": 77, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "IsNotAbstract", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "nonTrivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPolymorphic": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1044, -// CHECK-NEXT: "line": 75, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1037, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1044, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "IsNotAbstract", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1075, -// CHECK-NEXT: "line": 76, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1062, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 7 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1077, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "f", -// CHECK-NEXT: "mangledName": "_ZN13IsNotAbstract1fEv", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "virtual": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1044, -// CHECK-NEXT: "line": 75, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1044, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1044, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator=", -// CHECK-NEXT: "mangledName": "_ZN13IsNotAbstractaSERKS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "IsNotAbstract &(const IsNotAbstract &)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true, -// CHECK-NEXT: "explicitlyDefaulted": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1044, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1044, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1044, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const IsNotAbstract &" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1044, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1044, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1044, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator=", -// CHECK-NEXT: "mangledName": "_ZN13IsNotAbstractaSEOS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "IsNotAbstract &(IsNotAbstract &&)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true, -// CHECK-NEXT: "explicitlyDefaulted": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1044, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1044, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1044, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "IsNotAbstract &&" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDestructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1044, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1044, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1044, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "~IsNotAbstract", -// CHECK-NEXT: "mangledName": "_ZN13IsNotAbstractD1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "explicitlyDefaulted": "default" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1091, -// CHECK-NEXT: "line": 79, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 9 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1084, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1129, -// CHECK-NEXT: "line": 81, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "IsLiteral", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "trivial": true, -// CHECK-NEXT: "userDeclared": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": {}, -// CHECK-NEXT: "moveCtor": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1091, -// CHECK-NEXT: "line": 79, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 9 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1084, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1091, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 9 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "IsLiteral", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDestructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1105, -// CHECK-NEXT: "line": 80, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1105, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1126, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "~IsLiteral", -// CHECK-NEXT: "mangledName": "_ZN9IsLiteralD1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "explicitlyDefaulted": "default" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1140, -// CHECK-NEXT: "line": 83, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 12 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1133, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1176, -// CHECK-NEXT: "line": 85, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "IsNotLiteral", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "userDeclared": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "moveAssign": {}, -// CHECK-NEXT: "moveCtor": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1140, -// CHECK-NEXT: "line": 83, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 12 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1133, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1140, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 12 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "IsNotLiteral", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDestructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1157, -// CHECK-NEXT: "line": 84, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1157, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1174, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "~IsNotLiteral", -// CHECK-NEXT: "mangledName": "_ZN12IsNotLiteralD1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void () noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1173, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1174, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1187, -// CHECK-NEXT: "line": 87, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 26 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1180, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1250, -// CHECK-NEXT: "line": 89, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "HasUserDeclaredConstructor", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "userProvided": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasUserDeclaredConstructor": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1187, -// CHECK-NEXT: "line": 87, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 26 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1180, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1187, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 26 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "HasUserDeclaredConstructor", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConstructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1218, -// CHECK-NEXT: "line": 88, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 26 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1218, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 26 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1248, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "HasUserDeclaredConstructor", -// CHECK-NEXT: "mangledName": "_ZN26HasUserDeclaredConstructorC1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1247, -// CHECK-NEXT: "col": 32, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1248, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1261, -// CHECK-NEXT: "line": 91, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 28 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1254, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1292, -// CHECK-NEXT: "line": 92, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "HasNoUserDeclaredConstructor", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1261, -// CHECK-NEXT: "line": 91, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 28 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1254, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1261, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 28 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "HasNoUserDeclaredConstructor", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1303, -// CHECK-NEXT: "line": 94, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 34 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1296, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1392, -// CHECK-NEXT: "line": 96, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "HasConstexprNonCopyMoveConstructor", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "userProvided": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "hasUserDeclaredConstructor": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1303, -// CHECK-NEXT: "line": 94, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 34 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1296, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1303, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 34 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "HasConstexprNonCopyMoveConstructor", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConstructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1352, -// CHECK-NEXT: "line": 95, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 34 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1342, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 9 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1390, -// CHECK-NEXT: "col": 51, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "HasConstexprNonCopyMoveConstructor", -// CHECK-NEXT: "mangledName": "_ZN34HasConstexprNonCopyMoveConstructorC1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "constexpr": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1389, -// CHECK-NEXT: "col": 50, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1390, -// CHECK-NEXT: "col": 51, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1403, -// CHECK-NEXT: "line": 98, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 36 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1396, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1486, -// CHECK-NEXT: "line": 100, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "HasNoConstexprNonCopyMoveConstructor", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "userProvided": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasUserDeclaredConstructor": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1403, -// CHECK-NEXT: "line": 98, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 36 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1396, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1403, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 36 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "HasNoConstexprNonCopyMoveConstructor", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConstructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1444, -// CHECK-NEXT: "line": 99, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 36 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1444, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 36 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1484, -// CHECK-NEXT: "col": 43, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "HasNoConstexprNonCopyMoveConstructor", -// CHECK-NEXT: "mangledName": "_ZN36HasNoConstexprNonCopyMoveConstructorC1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1483, -// CHECK-NEXT: "col": 42, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1484, -// CHECK-NEXT: "col": 43, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1497, -// CHECK-NEXT: "line": 102, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1490, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1533, -// CHECK-NEXT: "line": 104, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "HasMutableFields", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasMutableFields": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1497, -// CHECK-NEXT: "line": 102, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1490, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1497, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 16 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "HasMutableFields", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1530, -// CHECK-NEXT: "line": 103, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1518, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 7 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1530, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "mutable": true -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1544, -// CHECK-NEXT: "line": 106, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 18 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1537, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1574, -// CHECK-NEXT: "line": 108, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "HasNoMutableFields", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1544, -// CHECK-NEXT: "line": 106, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 18 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1537, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1544, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 18 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "HasNoMutableFields", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1571, -// CHECK-NEXT: "line": 107, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1567, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1571, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1585, -// CHECK-NEXT: "line": 110, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 17 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1578, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1631, -// CHECK-NEXT: "line": 114, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "HasVariantMembers", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasVariantMembers": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1585, -// CHECK-NEXT: "line": 110, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 17 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1578, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1585, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 17 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "HasVariantMembers", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1607, -// CHECK-NEXT: "line": 111, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1607, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1628, -// CHECK-NEXT: "line": 113, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "tagUsed": "union", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasVariantMembers": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1623, -// CHECK-NEXT: "line": 112, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1619, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1623, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1607, -// CHECK-NEXT: "line": 111, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1607, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1607, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "HasVariantMembers::(anonymous union at {{.*}}:111:3)" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IndirectFieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1623, -// CHECK-NEXT: "line": 112, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1623, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1623, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "i" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1642, -// CHECK-NEXT: "line": 116, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1635, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1664, -// CHECK-NEXT: "line": 117, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "HasNoVariantMembers", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1642, -// CHECK-NEXT: "line": 116, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1635, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1642, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "HasNoVariantMembers", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1675, -// CHECK-NEXT: "line": 119, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 22 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1668, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1714, -// CHECK-NEXT: "line": 121, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "AllowsConstDefaultInit", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "nonTrivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1675, -// CHECK-NEXT: "line": 119, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 22 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1668, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1675, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 22 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "AllowsConstDefaultInit", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1706, -// CHECK-NEXT: "line": 120, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1702, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1710, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "hasInClassInitializer": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1710, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1710, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1725, -// CHECK-NEXT: "line": 123, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 28 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1718, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1765, -// CHECK-NEXT: "line": 125, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "DoesNotAllowConstDefaultInit", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1725, -// CHECK-NEXT: "line": 123, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 28 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1718, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1725, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 28 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "DoesNotAllowConstDefaultInit", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1762, -// CHECK-NEXT: "line": 124, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1758, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1762, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -fclang-abi-compat=7.0 -std=c++17 -ast-dump=json %s | FileCheck %s + +void f() { + auto IsNotGenericLambda = [](){}; + auto IsGenericLambda = [](auto){}; +} + +struct CanPassInRegisters { + CanPassInRegisters(const CanPassInRegisters&) = default; +}; + +struct CantPassInRegisters { + CantPassInRegisters(const CantPassInRegisters&) = delete; +}; + +struct IsEmpty { +}; + +struct IsNotEmpty { + int a; +}; + +struct IsAggregate { + int a; +}; + +struct IsNotAggregate { +private: + int a; +}; + +struct IsStandardLayout { + void f(); +}; + +struct IsNotStandardLayout { + virtual void f(); +}; + +struct IsTriviallyCopyable { +}; + +struct IsNotTriviallyCopyable { + IsNotTriviallyCopyable(const IsNotTriviallyCopyable&) {} +}; + +struct IsPOD { + int a; +}; + +struct IsNotPOD { + int &a; +}; + +struct IsTrivial { + IsTrivial() = default; +}; + +struct IsNotTrivial { + IsNotTrivial() {} +}; + +struct IsPolymorphic { + virtual void f(); +}; + +struct IsNotPolymorphic { + void f(); +}; + +struct IsAbstract { + virtual void f() = 0; +}; + +struct IsNotAbstract { + virtual void f(); +}; + +struct IsLiteral { + ~IsLiteral() = default; +}; + +struct IsNotLiteral { + ~IsNotLiteral() {} +}; + +struct HasUserDeclaredConstructor { + HasUserDeclaredConstructor() {} +}; + +struct HasNoUserDeclaredConstructor { +}; + +struct HasConstexprNonCopyMoveConstructor { + constexpr HasConstexprNonCopyMoveConstructor() {} +}; + +struct HasNoConstexprNonCopyMoveConstructor { + HasNoConstexprNonCopyMoveConstructor() {} +}; + +struct HasMutableFields { + mutable int i; +}; + +struct HasNoMutableFields { + int i; +}; + +struct HasVariantMembers { + union { + int i; + }; +}; + +struct HasNoVariantMembers { +}; + +struct AllowsConstDefaultInit { + int i = 12; +}; + +struct DoesNotAllowConstDefaultInit { + int i; +}; + +// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py +// using --filters=CXXRecordDecl + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "__NSConstantString_tag" +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "__va_list_tag" +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 160, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 160, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 160, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "tagUsed": "class", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLambda": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": {}, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 160, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 163, +// CHECK-NEXT: "col": 32, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 165, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "operator()", +// CHECK-NEXT: "mangledName": "_ZZ1fvENK3$_0clEv", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void () const" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 164, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 165, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConversionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 160, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 160, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 165, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator void (*)()", +// CHECK-NEXT: "mangledName": "_ZZ1fvENK3$_0cvPFvvEEv", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (*() const noexcept)()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 160, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 160, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 165, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__invoke", +// CHECK-NEXT: "mangledName": "_ZZ1fvEN3$_08__invokeEv", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "storageClass": "static", +// CHECK-NEXT: "inline": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDestructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 160, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 160, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 160, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "~(lambda at {{.*}}:4:29)", +// CHECK-NEXT: "mangledName": "_ZZ1fvEN3$_0D1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void () noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "explicitlyDefaulted": "default" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "" +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 194, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 194, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 194, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "tagUsed": "class", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isGenericLambda": true, +// CHECK-NEXT: "isLambda": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": {}, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionTemplateDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 194, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 203, +// CHECK-NEXT: "col": 35, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "operator()", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 201, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 197, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 201, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "auto:1", +// CHECK-NEXT: "tagUsed": "class", +// CHECK-NEXT: "depth": 0, +// CHECK-NEXT: "index": 0 +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 194, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 201, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 203, +// CHECK-NEXT: "col": 35, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "operator()", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto (auto) const" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 201, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 197, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 197, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto" +// CHECK-NEXT: }, +// CHECK-NEXT: "isDependent": true, +// CHECK-NEXT: "isInstantiationDependent": true, +// CHECK-NEXT: "depth": 0, +// CHECK-NEXT: "index": 0, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmDecl", +// CHECK-NEXT: "name": "auto:1" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 202, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 203, +// CHECK-NEXT: "col": 35, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionTemplateDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 194, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 203, +// CHECK-NEXT: "col": 35, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator auto (*)(type-parameter-0-0)", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 201, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 197, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 201, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "auto:1", +// CHECK-NEXT: "tagUsed": "class", +// CHECK-NEXT: "depth": 0, +// CHECK-NEXT: "index": 0 +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConversionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 194, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 194, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 203, +// CHECK-NEXT: "col": 35, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator auto (*)(type-parameter-0-0)", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto (*() const noexcept)(auto)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionTemplateDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 194, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 203, +// CHECK-NEXT: "col": 35, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__invoke", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 201, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 197, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 201, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "auto:1", +// CHECK-NEXT: "tagUsed": "class", +// CHECK-NEXT: "depth": 0, +// CHECK-NEXT: "index": 0 +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 194, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 194, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 203, +// CHECK-NEXT: "col": 35, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__invoke", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto (auto)" +// CHECK-NEXT: }, +// CHECK-NEXT: "storageClass": "static", +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 201, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 197, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 197, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "auto" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "depth": 0, +// CHECK-NEXT: "index": 0, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmDecl", +// CHECK-NEXT: "name": "auto:1" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDestructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 194, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 194, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 194, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "~(lambda at {{.*}}:5:26)", +// CHECK-NEXT: "mangledName": "_ZZ1fvEN3$_1D1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void () noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "explicitlyDefaulted": "default" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "" +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 219, +// CHECK-NEXT: "line": 8, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 18 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 212, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 301, +// CHECK-NEXT: "line": 10, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "CanPassInRegisters", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "trivial": true, +// CHECK-NEXT: "userDeclared": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasUserDeclaredConstructor": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": {}, +// CHECK-NEXT: "moveCtor": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 219, +// CHECK-NEXT: "line": 8, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 18 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 212, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 219, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 18 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "CanPassInRegisters", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConstructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 243, +// CHECK-NEXT: "line": 9, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 18 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 243, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 18 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 297, +// CHECK-NEXT: "col": 57, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "CanPassInRegisters", +// CHECK-NEXT: "mangledName": "_ZN18CanPassInRegistersC1ERKS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (const CanPassInRegisters &)" +// CHECK-NEXT: }, +// CHECK-NEXT: "constexpr": true, +// CHECK-NEXT: "explicitlyDefaulted": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 287, +// CHECK-NEXT: "col": 47, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 262, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 286, +// CHECK-NEXT: "col": 46, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const CanPassInRegisters &" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const CanPassInRegisters &" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "qualTypeDetail": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const CanPassInRegisters" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "const", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "CanPassInRegisters" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "CanPassInRegisters" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "CanPassInRegisters" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 314, +// CHECK-NEXT: "line": 12, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 307, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 398, +// CHECK-NEXT: "line": 14, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "CantPassInRegisters", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "trivial": true, +// CHECK-NEXT: "userDeclared": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasUserDeclaredConstructor": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": {}, +// CHECK-NEXT: "moveCtor": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 314, +// CHECK-NEXT: "line": 12, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 307, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 314, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "CantPassInRegisters", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConstructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 339, +// CHECK-NEXT: "line": 13, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 339, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 394, +// CHECK-NEXT: "col": 58, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "CantPassInRegisters", +// CHECK-NEXT: "mangledName": "_ZN19CantPassInRegistersC1ERKS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (const CantPassInRegisters &)" +// CHECK-NEXT: }, +// CHECK-NEXT: "explicitlyDeleted": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 385, +// CHECK-NEXT: "col": 49, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 359, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 384, +// CHECK-NEXT: "col": 48, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const CantPassInRegisters &" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const CantPassInRegisters &" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "qualTypeDetail": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const CantPassInRegisters" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "const", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "CantPassInRegisters" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "CantPassInRegisters" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "CantPassInRegisters" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 411, +// CHECK-NEXT: "line": 16, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 7 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 404, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 422, +// CHECK-NEXT: "line": 17, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "IsEmpty", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 411, +// CHECK-NEXT: "line": 16, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 7 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 404, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 411, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 7 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "IsEmpty", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 435, +// CHECK-NEXT: "line": 19, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 428, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 459, +// CHECK-NEXT: "line": 21, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "IsNotEmpty", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 435, +// CHECK-NEXT: "line": 19, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 428, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 435, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "IsNotEmpty", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 455, +// CHECK-NEXT: "line": 20, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 451, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 455, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 472, +// CHECK-NEXT: "line": 23, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 11 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 465, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 497, +// CHECK-NEXT: "line": 25, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "IsAggregate", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 472, +// CHECK-NEXT: "line": 23, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 11 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 465, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 472, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 11 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "IsAggregate", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 493, +// CHECK-NEXT: "line": 24, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 489, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 493, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 510, +// CHECK-NEXT: "line": 27, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 14 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 503, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 548, +// CHECK-NEXT: "line": 30, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "IsNotAggregate", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 510, +// CHECK-NEXT: "line": 27, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 14 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 503, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 510, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 14 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "IsNotAggregate", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "AccessSpecDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 528, +// CHECK-NEXT: "line": 28, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 7 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 528, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 7 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 535, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "access": "private" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 544, +// CHECK-NEXT: "line": 29, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 540, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 544, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 561, +// CHECK-NEXT: "line": 32, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 554, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 594, +// CHECK-NEXT: "line": 34, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "IsStandardLayout", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 561, +// CHECK-NEXT: "line": 32, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 554, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 561, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "IsStandardLayout", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 588, +// CHECK-NEXT: "line": 33, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 583, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 590, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "f", +// CHECK-NEXT: "mangledName": "_ZN16IsStandardLayout1fEv", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 607, +// CHECK-NEXT: "line": 36, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 600, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 651, +// CHECK-NEXT: "line": 38, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "IsNotStandardLayout", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "nonTrivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPolymorphic": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 607, +// CHECK-NEXT: "line": 36, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 600, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 607, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "IsNotStandardLayout", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 645, +// CHECK-NEXT: "line": 37, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 632, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 7 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 647, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "f", +// CHECK-NEXT: "mangledName": "_ZN19IsNotStandardLayout1fEv", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "virtual": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 607, +// CHECK-NEXT: "line": 36, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 607, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 607, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator=", +// CHECK-NEXT: "mangledName": "_ZN19IsNotStandardLayoutaSERKS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsNotStandardLayout &(const IsNotStandardLayout &)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true, +// CHECK-NEXT: "explicitlyDefaulted": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 607, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 607, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 607, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const IsNotStandardLayout &" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const IsNotStandardLayout &" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "qualTypeDetail": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const IsNotStandardLayout" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "const", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsNotStandardLayout" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsNotStandardLayout" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "IsNotStandardLayout" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 607, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 607, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 607, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator=", +// CHECK-NEXT: "mangledName": "_ZN19IsNotStandardLayoutaSEOS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsNotStandardLayout &(IsNotStandardLayout &&)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true, +// CHECK-NEXT: "explicitlyDefaulted": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 607, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 607, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 607, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsNotStandardLayout &&" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsNotStandardLayout &&" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "IsNotStandardLayout" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDestructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 607, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 607, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 607, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "~IsNotStandardLayout", +// CHECK-NEXT: "mangledName": "_ZN19IsNotStandardLayoutD1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "explicitlyDefaulted": "default" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 664, +// CHECK-NEXT: "line": 40, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 657, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 687, +// CHECK-NEXT: "line": 41, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "IsTriviallyCopyable", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 664, +// CHECK-NEXT: "line": 40, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 657, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 664, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "IsTriviallyCopyable", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 700, +// CHECK-NEXT: "line": 43, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 22 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 693, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 786, +// CHECK-NEXT: "line": 45, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "IsNotTriviallyCopyable", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "userDeclared": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasUserDeclaredConstructor": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "moveAssign": {}, +// CHECK-NEXT: "moveCtor": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 700, +// CHECK-NEXT: "line": 43, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 22 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 693, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 700, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 22 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "IsNotTriviallyCopyable", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConstructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 728, +// CHECK-NEXT: "line": 44, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 22 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 728, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 22 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 783, +// CHECK-NEXT: "col": 58, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "IsNotTriviallyCopyable", +// CHECK-NEXT: "mangledName": "_ZN22IsNotTriviallyCopyableC1ERKS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (const IsNotTriviallyCopyable &)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 780, +// CHECK-NEXT: "col": 55, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 751, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 779, +// CHECK-NEXT: "col": 54, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const IsNotTriviallyCopyable &" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const IsNotTriviallyCopyable &" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "qualTypeDetail": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const IsNotTriviallyCopyable" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "const", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsNotTriviallyCopyable" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsNotTriviallyCopyable" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "IsNotTriviallyCopyable" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 782, +// CHECK-NEXT: "col": 57, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 783, +// CHECK-NEXT: "col": 58, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 799, +// CHECK-NEXT: "line": 47, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 792, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 818, +// CHECK-NEXT: "line": 49, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "IsPOD", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 799, +// CHECK-NEXT: "line": 47, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 792, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 799, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "IsPOD", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 814, +// CHECK-NEXT: "line": 48, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 810, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 814, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 831, +// CHECK-NEXT: "line": 51, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 824, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 854, +// CHECK-NEXT: "line": 53, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "IsNotPOD", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 831, +// CHECK-NEXT: "line": 51, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 824, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 831, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "IsNotPOD", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 850, +// CHECK-NEXT: "line": 52, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 845, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 850, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int &" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int &" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 867, +// CHECK-NEXT: "line": 55, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 9 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 860, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 906, +// CHECK-NEXT: "line": 57, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "IsTrivial", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "hasUserDeclaredConstructor": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 867, +// CHECK-NEXT: "line": 55, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 9 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 860, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 867, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 9 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "IsTrivial", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConstructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 882, +// CHECK-NEXT: "line": 56, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 9 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 882, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 9 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 902, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "IsTrivial", +// CHECK-NEXT: "mangledName": "_ZN9IsTrivialC1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "constexpr": true, +// CHECK-NEXT: "explicitlyDefaulted": "default" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 919, +// CHECK-NEXT: "line": 59, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 12 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 912, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 956, +// CHECK-NEXT: "line": 61, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "IsNotTrivial", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "userProvided": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasUserDeclaredConstructor": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 919, +// CHECK-NEXT: "line": 59, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 12 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 912, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 919, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 12 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "IsNotTrivial", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConstructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 937, +// CHECK-NEXT: "line": 60, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 12 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 937, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 12 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 953, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "IsNotTrivial", +// CHECK-NEXT: "mangledName": "_ZN12IsNotTrivialC1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 952, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 953, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 969, +// CHECK-NEXT: "line": 63, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 962, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1007, +// CHECK-NEXT: "line": 65, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "IsPolymorphic", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "nonTrivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPolymorphic": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 969, +// CHECK-NEXT: "line": 63, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 962, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 969, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "IsPolymorphic", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1001, +// CHECK-NEXT: "line": 64, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 988, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 7 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1003, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "f", +// CHECK-NEXT: "mangledName": "_ZN13IsPolymorphic1fEv", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "virtual": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 969, +// CHECK-NEXT: "line": 63, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 969, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 969, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator=", +// CHECK-NEXT: "mangledName": "_ZN13IsPolymorphicaSERKS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsPolymorphic &(const IsPolymorphic &)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true, +// CHECK-NEXT: "explicitlyDefaulted": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 969, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 969, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 969, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const IsPolymorphic &" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const IsPolymorphic &" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "qualTypeDetail": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const IsPolymorphic" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "const", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsPolymorphic" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsPolymorphic" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "IsPolymorphic" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 969, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 969, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 969, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator=", +// CHECK-NEXT: "mangledName": "_ZN13IsPolymorphicaSEOS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsPolymorphic &(IsPolymorphic &&)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true, +// CHECK-NEXT: "explicitlyDefaulted": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 969, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 969, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 969, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsPolymorphic &&" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsPolymorphic &&" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "IsPolymorphic" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDestructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 969, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 969, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 969, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "~IsPolymorphic", +// CHECK-NEXT: "mangledName": "_ZN13IsPolymorphicD1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "explicitlyDefaulted": "default" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1020, +// CHECK-NEXT: "line": 67, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1013, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1053, +// CHECK-NEXT: "line": 69, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "IsNotPolymorphic", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1020, +// CHECK-NEXT: "line": 67, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1013, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1020, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "IsNotPolymorphic", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1047, +// CHECK-NEXT: "line": 68, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1042, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1049, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "f", +// CHECK-NEXT: "mangledName": "_ZN16IsNotPolymorphic1fEv", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1066, +// CHECK-NEXT: "line": 71, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1059, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1105, +// CHECK-NEXT: "line": 73, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "IsAbstract", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "nonTrivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "isAbstract": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPolymorphic": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1066, +// CHECK-NEXT: "line": 71, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1059, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1066, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "IsAbstract", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1095, +// CHECK-NEXT: "line": 72, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1082, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 7 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1101, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "f", +// CHECK-NEXT: "mangledName": "_ZN10IsAbstract1fEv", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "virtual": true, +// CHECK-NEXT: "pure": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1066, +// CHECK-NEXT: "line": 71, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1066, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1066, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator=", +// CHECK-NEXT: "mangledName": "_ZN10IsAbstractaSERKS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsAbstract &(const IsAbstract &)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true, +// CHECK-NEXT: "explicitlyDefaulted": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1066, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1066, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1066, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const IsAbstract &" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const IsAbstract &" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "qualTypeDetail": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const IsAbstract" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "const", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsAbstract" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsAbstract" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "IsAbstract" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1066, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1066, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1066, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator=", +// CHECK-NEXT: "mangledName": "_ZN10IsAbstractaSEOS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsAbstract &(IsAbstract &&)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true, +// CHECK-NEXT: "explicitlyDefaulted": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1066, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1066, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1066, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsAbstract &&" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsAbstract &&" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "IsAbstract" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDestructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1066, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1066, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1066, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "~IsAbstract", +// CHECK-NEXT: "mangledName": "_ZN10IsAbstractD1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "explicitlyDefaulted": "default" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1118, +// CHECK-NEXT: "line": 75, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1111, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1156, +// CHECK-NEXT: "line": 77, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "IsNotAbstract", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "nonTrivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPolymorphic": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1118, +// CHECK-NEXT: "line": 75, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1111, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1118, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "IsNotAbstract", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1150, +// CHECK-NEXT: "line": 76, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1137, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 7 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1152, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "f", +// CHECK-NEXT: "mangledName": "_ZN13IsNotAbstract1fEv", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "virtual": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1118, +// CHECK-NEXT: "line": 75, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1118, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1118, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator=", +// CHECK-NEXT: "mangledName": "_ZN13IsNotAbstractaSERKS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsNotAbstract &(const IsNotAbstract &)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true, +// CHECK-NEXT: "explicitlyDefaulted": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1118, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1118, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1118, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const IsNotAbstract &" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const IsNotAbstract &" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "qualTypeDetail": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const IsNotAbstract" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "const", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsNotAbstract" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsNotAbstract" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "IsNotAbstract" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1118, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1118, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1118, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator=", +// CHECK-NEXT: "mangledName": "_ZN13IsNotAbstractaSEOS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsNotAbstract &(IsNotAbstract &&)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true, +// CHECK-NEXT: "explicitlyDefaulted": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1118, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1118, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1118, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsNotAbstract &&" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "IsNotAbstract &&" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "IsNotAbstract" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDestructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1118, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1118, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1118, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "~IsNotAbstract", +// CHECK-NEXT: "mangledName": "_ZN13IsNotAbstractD1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "explicitlyDefaulted": "default" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1169, +// CHECK-NEXT: "line": 79, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 9 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1162, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1209, +// CHECK-NEXT: "line": 81, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "IsLiteral", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "trivial": true, +// CHECK-NEXT: "userDeclared": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": {}, +// CHECK-NEXT: "moveCtor": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1169, +// CHECK-NEXT: "line": 79, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 9 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1162, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1169, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 9 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "IsLiteral", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDestructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1184, +// CHECK-NEXT: "line": 80, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1184, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1205, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "~IsLiteral", +// CHECK-NEXT: "mangledName": "_ZN9IsLiteralD1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "explicitlyDefaulted": "default" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1222, +// CHECK-NEXT: "line": 83, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 12 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1215, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1260, +// CHECK-NEXT: "line": 85, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "IsNotLiteral", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "userDeclared": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "moveAssign": {}, +// CHECK-NEXT: "moveCtor": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1222, +// CHECK-NEXT: "line": 83, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 12 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1215, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1222, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 12 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "IsNotLiteral", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDestructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1240, +// CHECK-NEXT: "line": 84, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1240, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1257, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "~IsNotLiteral", +// CHECK-NEXT: "mangledName": "_ZN12IsNotLiteralD1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void () noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1256, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1257, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1273, +// CHECK-NEXT: "line": 87, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 26 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1266, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1338, +// CHECK-NEXT: "line": 89, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "HasUserDeclaredConstructor", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "userProvided": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasUserDeclaredConstructor": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1273, +// CHECK-NEXT: "line": 87, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 26 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1266, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1273, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 26 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "HasUserDeclaredConstructor", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConstructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1305, +// CHECK-NEXT: "line": 88, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 26 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1305, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 26 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1335, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "HasUserDeclaredConstructor", +// CHECK-NEXT: "mangledName": "_ZN26HasUserDeclaredConstructorC1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1334, +// CHECK-NEXT: "col": 32, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1335, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1351, +// CHECK-NEXT: "line": 91, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 28 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1344, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1383, +// CHECK-NEXT: "line": 92, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "HasNoUserDeclaredConstructor", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1351, +// CHECK-NEXT: "line": 91, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 28 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1344, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1351, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 28 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "HasNoUserDeclaredConstructor", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1396, +// CHECK-NEXT: "line": 94, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 34 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1389, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1487, +// CHECK-NEXT: "line": 96, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "HasConstexprNonCopyMoveConstructor", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "userProvided": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "hasUserDeclaredConstructor": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1396, +// CHECK-NEXT: "line": 94, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 34 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1389, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1396, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 34 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "HasConstexprNonCopyMoveConstructor", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConstructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1446, +// CHECK-NEXT: "line": 95, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 34 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1436, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 9 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1484, +// CHECK-NEXT: "col": 51, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "HasConstexprNonCopyMoveConstructor", +// CHECK-NEXT: "mangledName": "_ZN34HasConstexprNonCopyMoveConstructorC1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "constexpr": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1483, +// CHECK-NEXT: "col": 50, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1484, +// CHECK-NEXT: "col": 51, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1500, +// CHECK-NEXT: "line": 98, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 36 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1493, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1585, +// CHECK-NEXT: "line": 100, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "HasNoConstexprNonCopyMoveConstructor", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "userProvided": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasUserDeclaredConstructor": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1500, +// CHECK-NEXT: "line": 98, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 36 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1493, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1500, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 36 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "HasNoConstexprNonCopyMoveConstructor", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConstructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1542, +// CHECK-NEXT: "line": 99, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 36 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1542, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 36 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1582, +// CHECK-NEXT: "col": 43, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "HasNoConstexprNonCopyMoveConstructor", +// CHECK-NEXT: "mangledName": "_ZN36HasNoConstexprNonCopyMoveConstructorC1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1581, +// CHECK-NEXT: "col": 42, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1582, +// CHECK-NEXT: "col": 43, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1598, +// CHECK-NEXT: "line": 102, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1591, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1636, +// CHECK-NEXT: "line": 104, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "HasMutableFields", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasMutableFields": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1598, +// CHECK-NEXT: "line": 102, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1591, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1598, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 16 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "HasMutableFields", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1632, +// CHECK-NEXT: "line": 103, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1620, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 7 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1632, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "mutable": true, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1649, +// CHECK-NEXT: "line": 106, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 18 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1642, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1681, +// CHECK-NEXT: "line": 108, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "HasNoMutableFields", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1649, +// CHECK-NEXT: "line": 106, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 18 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1642, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1649, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 18 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "HasNoMutableFields", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1677, +// CHECK-NEXT: "line": 107, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1673, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1677, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1694, +// CHECK-NEXT: "line": 110, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 17 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1687, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1744, +// CHECK-NEXT: "line": 114, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "HasVariantMembers", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasVariantMembers": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1694, +// CHECK-NEXT: "line": 110, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 17 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1687, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1694, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 17 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "HasVariantMembers", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1717, +// CHECK-NEXT: "line": 111, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1717, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1740, +// CHECK-NEXT: "line": 113, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "tagUsed": "union", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasVariantMembers": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1734, +// CHECK-NEXT: "line": 112, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1730, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1734, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1717, +// CHECK-NEXT: "line": 111, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1717, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1717, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "HasVariantMembers::(anonymous union at {{.*}}:111:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "HasVariantMembers::(anonymous union at {{.*}}:111:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "union" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IndirectFieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1734, +// CHECK-NEXT: "line": 112, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1734, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1734, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "i" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1757, +// CHECK-NEXT: "line": 116, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1750, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1780, +// CHECK-NEXT: "line": 117, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "HasNoVariantMembers", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1757, +// CHECK-NEXT: "line": 116, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1750, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1757, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "HasNoVariantMembers", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1793, +// CHECK-NEXT: "line": 119, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 22 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1786, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1834, +// CHECK-NEXT: "line": 121, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "AllowsConstDefaultInit", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "nonTrivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1793, +// CHECK-NEXT: "line": 119, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 22 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1786, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1793, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 22 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "AllowsConstDefaultInit", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1825, +// CHECK-NEXT: "line": 120, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1821, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1829, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "hasInClassInitializer": true, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1829, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1829, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1847, +// CHECK-NEXT: "line": 123, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 28 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1840, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1889, +// CHECK-NEXT: "line": 125, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "DoesNotAllowConstDefaultInit", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1847, +// CHECK-NEXT: "line": 123, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 28 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1840, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1847, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 28 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "DoesNotAllowConstDefaultInit", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1885, +// CHECK-NEXT: "line": 124, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1881, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1885, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } diff --git a/clang/test/AST/ast-dump-records-json.cpp b/clang/test/AST/ast-dump-records-json.cpp index 7efdcb0b61318..a186080d160c5 100644 --- a/clang/test/AST/ast-dump-records-json.cpp +++ b/clang/test/AST/ast-dump-records-json.cpp @@ -1,4276 +1,5115 @@ -// RUN: %clang_cc1 -triple x86_64-unknown-unknown -std=c++17 -ast-dump=json %s | FileCheck %s - -struct A; -struct B; - -struct A { - int a; - int b, c; - int d : 12; - int : 0; - int e : 10; - B *f; -}; - -struct C { - struct { - int a; - } b; - - union { - int c; - float d; - }; - - struct { - int e, f; - }; -}; - -struct D { - int a; - int b[10]; - int c[]; -}; - -union E; - -union F; - -union E { - int a; - int b, c; - int d : 12; - int : 0; - int e : 10; - B *f; -}; - -union G { - struct { - int a; - } b; - - union { - int c; - float d; - }; - - struct { - int e, f; - }; -}; - -struct Base1 {}; -struct Base2 {}; -struct Base3 {}; - -struct Derived1 : Base1 { -}; - -struct Derived2 : private Base1 { -}; - -struct Derived3 : virtual Base1 { -}; - -struct Derived4 : Base1, virtual Base2, protected Base3 { -}; - -struct Derived5 : protected virtual Base1 { -}; - -template -struct Derived6 : virtual public Bases... { -}; - -// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py -// using --filters=CXXRecordDecl - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "name": "__NSConstantString_tag" -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "name": "__va_list_tag" -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 102, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 3, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 95, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 102, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "A", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 112, -// CHECK-NEXT: "line": 4, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 105, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 112, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "B", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 123, -// CHECK-NEXT: "line": 6, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 116, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 195, -// CHECK-NEXT: "line": 13, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "previousDecl": "0x{{.*}}", -// CHECK-NEXT: "name": "A", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 123, -// CHECK-NEXT: "line": 6, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 116, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 123, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "A", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 133, -// CHECK-NEXT: "line": 7, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 129, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 133, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 142, -// CHECK-NEXT: "line": 8, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 138, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 142, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 145, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 138, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 145, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "c", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 154, -// CHECK-NEXT: "line": 9, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 150, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 158, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "d", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "isBitfield": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ConstantExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 158, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 158, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 158, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 158, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 168, -// CHECK-NEXT: "line": 10, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 164, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 170, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "isBitfield": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ConstantExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 170, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 170, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 170, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 170, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 179, -// CHECK-NEXT: "line": 11, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 175, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 183, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "e", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "isBitfield": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ConstantExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 183, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 183, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "10", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 183, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 183, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "10" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 192, -// CHECK-NEXT: "line": 12, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 189, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 192, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "f", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "B *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 206, -// CHECK-NEXT: "line": 15, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 199, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 310, -// CHECK-NEXT: "line": 28, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "C", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasVariantMembers": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 206, -// CHECK-NEXT: "line": 15, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 199, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 206, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "C", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 212, -// CHECK-NEXT: "line": 16, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 212, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 234, -// CHECK-NEXT: "line": 18, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 229, -// CHECK-NEXT: "line": 17, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 225, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 229, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 236, -// CHECK-NEXT: "line": 18, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 212, -// CHECK-NEXT: "line": 16, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 236, -// CHECK-NEXT: "line": 18, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "C::(unnamed struct at {{.*}}:16:3)", -// CHECK-NEXT: "qualType": "struct (unnamed struct at {{.*}}:16:3)" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 242, -// CHECK-NEXT: "line": 20, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 242, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 276, -// CHECK-NEXT: "line": 23, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "tagUsed": "union", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasVariantMembers": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 258, -// CHECK-NEXT: "line": 21, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 254, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 258, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "c", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 271, -// CHECK-NEXT: "line": 22, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 265, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 271, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "d", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 242, -// CHECK-NEXT: "line": 20, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 242, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 242, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "C::(anonymous union at {{.*}}:20:3)" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IndirectFieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 258, -// CHECK-NEXT: "line": 21, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 258, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 258, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "c" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IndirectFieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 271, -// CHECK-NEXT: "line": 22, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 271, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 271, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "d" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 282, -// CHECK-NEXT: "line": 25, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 282, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 307, -// CHECK-NEXT: "line": 27, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 299, -// CHECK-NEXT: "line": 26, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 295, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 299, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "e", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 302, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 295, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 302, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "f", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 282, -// CHECK-NEXT: "line": 25, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 282, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 282, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "C::(anonymous struct at {{.*}}:25:3)" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IndirectFieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 299, -// CHECK-NEXT: "line": 26, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 299, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 299, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "e" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IndirectFieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 302, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 302, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 302, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "f" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 321, -// CHECK-NEXT: "line": 30, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 314, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 358, -// CHECK-NEXT: "line": 34, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "D", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 321, -// CHECK-NEXT: "line": 30, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 314, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 321, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "D", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 331, -// CHECK-NEXT: "line": 31, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 327, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 331, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 340, -// CHECK-NEXT: "line": 32, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 336, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 344, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int[10]" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 353, -// CHECK-NEXT: "line": 33, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 349, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 355, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "c", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int[]" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 368, -// CHECK-NEXT: "line": 36, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 362, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 368, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "E", -// CHECK-NEXT: "tagUsed": "union" -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 378, -// CHECK-NEXT: "line": 38, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 372, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 378, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "F", -// CHECK-NEXT: "tagUsed": "union" -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 388, -// CHECK-NEXT: "line": 40, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 382, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 460, -// CHECK-NEXT: "line": 47, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "previousDecl": "0x{{.*}}", -// CHECK-NEXT: "name": "E", -// CHECK-NEXT: "tagUsed": "union", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasVariantMembers": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 388, -// CHECK-NEXT: "line": 40, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 382, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 388, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "E", -// CHECK-NEXT: "tagUsed": "union" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 398, -// CHECK-NEXT: "line": 41, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 394, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 398, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 407, -// CHECK-NEXT: "line": 42, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 403, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 407, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 410, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 403, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 410, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "c", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 419, -// CHECK-NEXT: "line": 43, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 415, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 423, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "d", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "isBitfield": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ConstantExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 423, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 423, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 423, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 423, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 433, -// CHECK-NEXT: "line": 44, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 429, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 435, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "isBitfield": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ConstantExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 435, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 435, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 435, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 435, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 444, -// CHECK-NEXT: "line": 45, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 440, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 448, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "e", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "isBitfield": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ConstantExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 448, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 448, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "10", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 448, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 448, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "10" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 457, -// CHECK-NEXT: "line": 46, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 454, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 457, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "f", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "B *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 470, -// CHECK-NEXT: "line": 49, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 464, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 574, -// CHECK-NEXT: "line": 62, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "G", -// CHECK-NEXT: "tagUsed": "union", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasVariantMembers": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 470, -// CHECK-NEXT: "line": 49, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 464, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 470, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "G", -// CHECK-NEXT: "tagUsed": "union" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 476, -// CHECK-NEXT: "line": 50, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 476, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 498, -// CHECK-NEXT: "line": 52, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 493, -// CHECK-NEXT: "line": 51, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 489, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 493, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 500, -// CHECK-NEXT: "line": 52, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 476, -// CHECK-NEXT: "line": 50, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 500, -// CHECK-NEXT: "line": 52, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "G::(unnamed struct at {{.*}}:50:3)", -// CHECK-NEXT: "qualType": "struct (unnamed struct at {{.*}}:50:3)" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 506, -// CHECK-NEXT: "line": 54, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 506, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 540, -// CHECK-NEXT: "line": 57, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "tagUsed": "union", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasVariantMembers": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 522, -// CHECK-NEXT: "line": 55, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 518, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 522, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "c", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 535, -// CHECK-NEXT: "line": 56, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 529, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 535, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "d", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 506, -// CHECK-NEXT: "line": 54, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 506, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 506, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "G::(anonymous union at {{.*}}:54:3)" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IndirectFieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 522, -// CHECK-NEXT: "line": 55, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 522, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 522, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "c" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IndirectFieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 535, -// CHECK-NEXT: "line": 56, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 535, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 535, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "d" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 546, -// CHECK-NEXT: "line": 59, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 546, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 571, -// CHECK-NEXT: "line": 61, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 563, -// CHECK-NEXT: "line": 60, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 559, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 563, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "e", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 566, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 559, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 566, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "f", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 546, -// CHECK-NEXT: "line": 59, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 546, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 546, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "G::(anonymous struct at {{.*}}:59:3)" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IndirectFieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 563, -// CHECK-NEXT: "line": 60, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 563, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 563, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "e" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IndirectFieldDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 566, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 566, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 566, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "f" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 585, -// CHECK-NEXT: "line": 64, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 578, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 592, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "Base1", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 585, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 578, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 585, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "Base1", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 585, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 585, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 585, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator=", -// CHECK-NEXT: "mangledName": "_ZN5Base1aSERKS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Base1 &(const Base1 &)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true, -// CHECK-NEXT: "explicitlyDefaulted": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 585, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 585, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 585, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const Base1 &" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 585, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 585, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 585, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator=", -// CHECK-NEXT: "mangledName": "_ZN5Base1aSEOS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Base1 &(Base1 &&)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true, -// CHECK-NEXT: "explicitlyDefaulted": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 585, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 585, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 585, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Base1 &&" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDestructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 585, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 585, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 585, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "~Base1", -// CHECK-NEXT: "mangledName": "_ZN5Base1D1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "explicitlyDefaulted": "default" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 602, -// CHECK-NEXT: "line": 65, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 595, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 609, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "Base2", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 602, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 595, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 602, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "Base2", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 602, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 602, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 602, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator=", -// CHECK-NEXT: "mangledName": "_ZN5Base2aSERKS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Base2 &(const Base2 &)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true, -// CHECK-NEXT: "explicitlyDefaulted": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 602, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 602, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 602, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const Base2 &" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 602, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 602, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 602, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator=", -// CHECK-NEXT: "mangledName": "_ZN5Base2aSEOS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Base2 &(Base2 &&)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true, -// CHECK-NEXT: "explicitlyDefaulted": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 602, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 602, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 602, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Base2 &&" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDestructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 602, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 602, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 602, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "~Base2", -// CHECK-NEXT: "mangledName": "_ZN5Base2D1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "explicitlyDefaulted": "default" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 619, -// CHECK-NEXT: "line": 66, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 612, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 626, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "Base3", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isPOD": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 619, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 612, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 619, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "Base3", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 619, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 619, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 619, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator=", -// CHECK-NEXT: "mangledName": "_ZN5Base3aSERKS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Base3 &(const Base3 &)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true, -// CHECK-NEXT: "explicitlyDefaulted": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 619, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 619, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 619, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const Base3 &" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 619, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 619, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 619, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator=", -// CHECK-NEXT: "mangledName": "_ZN5Base3aSEOS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Base3 &(Base3 &&)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "constexpr": true, -// CHECK-NEXT: "explicitlyDefaulted": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 619, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 619, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 619, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Base3 &&" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDestructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 619, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 619, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 619, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "~Base3", -// CHECK-NEXT: "mangledName": "_ZN5Base3D1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "explicitlyDefaulted": "default" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 637, -// CHECK-NEXT: "line": 68, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 630, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 656, -// CHECK-NEXT: "line": 69, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Derived1", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "bases": [ -// CHECK-NEXT: { -// CHECK-NEXT: "access": "public", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Base1" -// CHECK-NEXT: }, -// CHECK-NEXT: "writtenAccess": "none" -// CHECK-NEXT: } -// CHECK-NEXT: ], -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 637, -// CHECK-NEXT: "line": 68, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 630, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 637, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "Derived1", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 667, -// CHECK-NEXT: "line": 71, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 660, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 694, -// CHECK-NEXT: "line": 72, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Derived2", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "canPassInRegisters": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "bases": [ -// CHECK-NEXT: { -// CHECK-NEXT: "access": "private", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Base1" -// CHECK-NEXT: }, -// CHECK-NEXT: "writtenAccess": "private" -// CHECK-NEXT: } -// CHECK-NEXT: ], -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 667, -// CHECK-NEXT: "line": 71, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 660, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 667, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "Derived2", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 705, -// CHECK-NEXT: "line": 74, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 698, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 732, -// CHECK-NEXT: "line": 75, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Derived3", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "nonTrivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "bases": [ -// CHECK-NEXT: { -// CHECK-NEXT: "access": "public", -// CHECK-NEXT: "isVirtual": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Base1" -// CHECK-NEXT: }, -// CHECK-NEXT: "writtenAccess": "none" -// CHECK-NEXT: } -// CHECK-NEXT: ], -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 705, -// CHECK-NEXT: "line": 74, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 698, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 705, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "Derived3", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 705, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 705, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 705, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator=", -// CHECK-NEXT: "mangledName": "_ZN8Derived3aSERKS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Derived3 &(const Derived3 &)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "explicitlyDefaulted": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 705, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 705, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 705, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const Derived3 &" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 705, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 705, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 705, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator=", -// CHECK-NEXT: "mangledName": "_ZN8Derived3aSEOS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Derived3 &(Derived3 &&)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "explicitlyDefaulted": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 705, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 705, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 705, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Derived3 &&" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDestructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 705, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 705, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 705, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "~Derived3", -// CHECK-NEXT: "mangledName": "_ZN8Derived3D1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "explicitlyDefaulted": "default" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 743, -// CHECK-NEXT: "line": 77, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 736, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 794, -// CHECK-NEXT: "line": 78, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Derived4", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "nonTrivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "bases": [ -// CHECK-NEXT: { -// CHECK-NEXT: "access": "public", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Base1" -// CHECK-NEXT: }, -// CHECK-NEXT: "writtenAccess": "none" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "access": "public", -// CHECK-NEXT: "isVirtual": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Base2" -// CHECK-NEXT: }, -// CHECK-NEXT: "writtenAccess": "none" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "access": "protected", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Base3" -// CHECK-NEXT: }, -// CHECK-NEXT: "writtenAccess": "protected" -// CHECK-NEXT: } -// CHECK-NEXT: ], -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 743, -// CHECK-NEXT: "line": 77, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 736, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 743, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "Derived4", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 743, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 743, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 743, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator=", -// CHECK-NEXT: "mangledName": "_ZN8Derived4aSERKS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Derived4 &(const Derived4 &)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "explicitlyDefaulted": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 743, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 743, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 743, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const Derived4 &" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 743, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 743, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 743, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator=", -// CHECK-NEXT: "mangledName": "_ZN8Derived4aSEOS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Derived4 &(Derived4 &&)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "explicitlyDefaulted": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 743, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 743, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 743, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Derived4 &&" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDestructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 743, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 743, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 743, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "~Derived4", -// CHECK-NEXT: "mangledName": "_ZN8Derived4D1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "explicitlyDefaulted": "default" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 805, -// CHECK-NEXT: "line": 80, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 798, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 842, -// CHECK-NEXT: "line": 81, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Derived5", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "nonTrivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "nonTrivial": true, -// CHECK-NEXT: "simple": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "bases": [ -// CHECK-NEXT: { -// CHECK-NEXT: "access": "protected", -// CHECK-NEXT: "isVirtual": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Base1" -// CHECK-NEXT: }, -// CHECK-NEXT: "writtenAccess": "protected" -// CHECK-NEXT: } -// CHECK-NEXT: ], -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 805, -// CHECK-NEXT: "line": 80, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 798, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 805, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "Derived5", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 805, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 805, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 805, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator=", -// CHECK-NEXT: "mangledName": "_ZN8Derived5aSERKS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Derived5 &(const Derived5 &)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "explicitlyDefaulted": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 805, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 805, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 805, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const Derived5 &" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMethodDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 805, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 805, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 805, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator=", -// CHECK-NEXT: "mangledName": "_ZN8Derived5aSEOS_", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Derived5 &(Derived5 &&)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "explicitlyDefaulted": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 805, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 805, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 805, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Derived5 &&" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDestructorDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 805, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 805, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 805, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "~Derived5", -// CHECK-NEXT: "mangledName": "_ZN8Derived5D1Ev", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inline": true, -// CHECK-NEXT: "explicitlyDefaulted": "default" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 882, -// CHECK-NEXT: "line": 84, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 875, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 919, -// CHECK-NEXT: "line": 85, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "Derived6", -// CHECK-NEXT: "tagUsed": "struct", -// CHECK-NEXT: "completeDefinition": true, -// CHECK-NEXT: "definitionData": { -// CHECK-NEXT: "canConstDefaultInit": true, -// CHECK-NEXT: "copyAssign": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "copyCtor": { -// CHECK-NEXT: "hasConstParam": true, -// CHECK-NEXT: "implicitHasConstParam": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "defaultCtor": { -// CHECK-NEXT: "defaultedIsConstexpr": true, -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "dtor": { -// CHECK-NEXT: "irrelevant": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, -// CHECK-NEXT: "isAggregate": true, -// CHECK-NEXT: "isEmpty": true, -// CHECK-NEXT: "isLiteral": true, -// CHECK-NEXT: "isStandardLayout": true, -// CHECK-NEXT: "isTrivial": true, -// CHECK-NEXT: "isTriviallyCopyable": true, -// CHECK-NEXT: "moveAssign": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: }, -// CHECK-NEXT: "moveCtor": { -// CHECK-NEXT: "exists": true, -// CHECK-NEXT: "needsImplicit": true, -// CHECK-NEXT: "simple": true, -// CHECK-NEXT: "trivial": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "bases": [ -// CHECK-NEXT: { -// CHECK-NEXT: "access": "public", -// CHECK-NEXT: "isPackExpansion": true, -// CHECK-NEXT: "isVirtual": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Bases" -// CHECK-NEXT: }, -// CHECK-NEXT: "writtenAccess": "public" -// CHECK-NEXT: } -// CHECK-NEXT: ], -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXRecordDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 882, -// CHECK-NEXT: "line": 84, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 875, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 882, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "Derived6", -// CHECK-NEXT: "tagUsed": "struct" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } +// RUN: %clang_cc1 -triple x86_64-unknown-unknown -std=c++17 -ast-dump=json %s | FileCheck %s + +struct A; +struct B; + +struct A { + int a; + int b, c; + int d : 12; + int : 0; + int e : 10; + B *f; +}; + +struct C { + struct { + int a; + } b; + + union { + int c; + float d; + }; + + struct { + int e, f; + }; +}; + +struct D { + int a; + int b[10]; + int c[]; +}; + +union E; + +union F; + +union E { + int a; + int b, c; + int d : 12; + int : 0; + int e : 10; + B *f; +}; + +union G { + struct { + int a; + } b; + + union { + int c; + float d; + }; + + struct { + int e, f; + }; +}; + +struct Base1 {}; +struct Base2 {}; +struct Base3 {}; + +struct Derived1 : Base1 { +}; + +struct Derived2 : private Base1 { +}; + +struct Derived3 : virtual Base1 { +}; + +struct Derived4 : Base1, virtual Base2, protected Base3 { +}; + +struct Derived5 : protected virtual Base1 { +}; + +template +struct Derived6 : virtual public Bases... { +}; + +// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py +// using --filters=CXXRecordDecl + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "__NSConstantString_tag" +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "__va_list_tag" +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 104, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 3, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 97, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 104, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "A", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 115, +// CHECK-NEXT: "line": 4, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 108, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 115, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "B", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 128, +// CHECK-NEXT: "line": 6, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 121, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 207, +// CHECK-NEXT: "line": 13, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "previousDecl": "0x{{.*}}", +// CHECK-NEXT: "name": "A", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 128, +// CHECK-NEXT: "line": 6, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 121, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 128, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "A", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 139, +// CHECK-NEXT: "line": 7, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 135, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 139, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 149, +// CHECK-NEXT: "line": 8, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 145, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 149, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 152, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 145, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 152, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "c", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 162, +// CHECK-NEXT: "line": 9, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 158, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 166, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "d", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "isBitfield": true, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ConstantExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 166, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 166, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 166, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 166, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 177, +// CHECK-NEXT: "line": 10, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 173, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 179, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "isBitfield": true, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ConstantExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 179, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 179, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 179, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 179, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 189, +// CHECK-NEXT: "line": 11, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 185, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 193, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "e", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "isBitfield": true, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ConstantExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 193, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 193, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "10", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 193, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 193, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "10" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 203, +// CHECK-NEXT: "line": 12, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 200, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 203, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "f", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "B *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "B *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "B" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 220, +// CHECK-NEXT: "line": 15, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 213, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 337, +// CHECK-NEXT: "line": 28, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "C", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasVariantMembers": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 220, +// CHECK-NEXT: "line": 15, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 213, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 220, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "C", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 227, +// CHECK-NEXT: "line": 16, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 227, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 251, +// CHECK-NEXT: "line": 18, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 245, +// CHECK-NEXT: "line": 17, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 241, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 245, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 253, +// CHECK-NEXT: "line": 18, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 227, +// CHECK-NEXT: "line": 16, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 253, +// CHECK-NEXT: "line": 18, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "C::(unnamed struct at {{.*}}:16:3)", +// CHECK-NEXT: "qualType": "struct (unnamed struct at {{.*}}:16:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "C::(unnamed struct at {{.*}}:16:3)", +// CHECK-NEXT: "qualType": "struct (unnamed struct at {{.*}}:16:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 261, +// CHECK-NEXT: "line": 20, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 261, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 298, +// CHECK-NEXT: "line": 23, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "tagUsed": "union", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasVariantMembers": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 278, +// CHECK-NEXT: "line": 21, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 274, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 278, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "c", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 292, +// CHECK-NEXT: "line": 22, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 286, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 292, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "d", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "fpp" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 261, +// CHECK-NEXT: "line": 20, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 261, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 261, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "C::(anonymous union at {{.*}}:20:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "C::(anonymous union at {{.*}}:20:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "union" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IndirectFieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 278, +// CHECK-NEXT: "line": 21, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 278, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 278, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "c" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IndirectFieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 292, +// CHECK-NEXT: "line": 22, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 292, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 292, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "d" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 306, +// CHECK-NEXT: "line": 25, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 306, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 333, +// CHECK-NEXT: "line": 27, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 324, +// CHECK-NEXT: "line": 26, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 324, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "e", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 327, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 320, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 327, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "f", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 306, +// CHECK-NEXT: "line": 25, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 306, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 306, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "C::(anonymous struct at {{.*}}:25:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "C::(anonymous struct at {{.*}}:25:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IndirectFieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 324, +// CHECK-NEXT: "line": 26, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 324, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 324, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "e" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IndirectFieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 327, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 327, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 327, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "f" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 350, +// CHECK-NEXT: "line": 30, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 343, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 391, +// CHECK-NEXT: "line": 34, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "D", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 350, +// CHECK-NEXT: "line": 30, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 343, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 350, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "D", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 361, +// CHECK-NEXT: "line": 31, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 357, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 361, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 371, +// CHECK-NEXT: "line": 32, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 367, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 375, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[10]" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[10]" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "array" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 385, +// CHECK-NEXT: "line": 33, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 381, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 387, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "c", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[]" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[]" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "array" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 403, +// CHECK-NEXT: "line": 36, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 397, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 403, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "E", +// CHECK-NEXT: "tagUsed": "union" +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 415, +// CHECK-NEXT: "line": 38, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 409, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 415, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "F", +// CHECK-NEXT: "tagUsed": "union" +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 427, +// CHECK-NEXT: "line": 40, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 421, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 506, +// CHECK-NEXT: "line": 47, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "previousDecl": "0x{{.*}}", +// CHECK-NEXT: "name": "E", +// CHECK-NEXT: "tagUsed": "union", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasVariantMembers": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 427, +// CHECK-NEXT: "line": 40, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 421, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 427, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "E", +// CHECK-NEXT: "tagUsed": "union" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 438, +// CHECK-NEXT: "line": 41, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 434, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 438, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 448, +// CHECK-NEXT: "line": 42, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 444, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 448, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 451, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 444, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 451, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "c", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 461, +// CHECK-NEXT: "line": 43, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 457, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 465, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "d", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "isBitfield": true, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ConstantExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 465, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 465, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 465, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 465, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 476, +// CHECK-NEXT: "line": 44, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 472, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 478, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "isBitfield": true, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ConstantExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 478, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 478, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 478, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 478, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 488, +// CHECK-NEXT: "line": 45, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 484, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 492, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "e", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "isBitfield": true, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ConstantExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 492, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 492, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "10", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 492, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 492, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "10" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 502, +// CHECK-NEXT: "line": 46, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 499, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 502, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "f", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "B *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 518, +// CHECK-NEXT: "line": 49, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 512, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 635, +// CHECK-NEXT: "line": 62, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "G", +// CHECK-NEXT: "tagUsed": "union", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasVariantMembers": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 518, +// CHECK-NEXT: "line": 49, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 512, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 518, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "G", +// CHECK-NEXT: "tagUsed": "union" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 525, +// CHECK-NEXT: "line": 50, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 525, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 549, +// CHECK-NEXT: "line": 52, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 543, +// CHECK-NEXT: "line": 51, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 539, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 543, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 551, +// CHECK-NEXT: "line": 52, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 525, +// CHECK-NEXT: "line": 50, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 551, +// CHECK-NEXT: "line": 52, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "G::(unnamed struct at {{.*}}:50:3)", +// CHECK-NEXT: "qualType": "struct (unnamed struct at {{.*}}:50:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "G::(unnamed struct at {{.*}}:50:3)", +// CHECK-NEXT: "qualType": "struct (unnamed struct at {{.*}}:50:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 559, +// CHECK-NEXT: "line": 54, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 559, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 596, +// CHECK-NEXT: "line": 57, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "tagUsed": "union", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasVariantMembers": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 576, +// CHECK-NEXT: "line": 55, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 572, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 576, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "c", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 590, +// CHECK-NEXT: "line": 56, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 584, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 590, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "d", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "fpp" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 559, +// CHECK-NEXT: "line": 54, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 559, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 559, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "G::(anonymous union at {{.*}}:54:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "G::(anonymous union at {{.*}}:54:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "union" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IndirectFieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 576, +// CHECK-NEXT: "line": 55, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 576, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 576, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "c" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IndirectFieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 590, +// CHECK-NEXT: "line": 56, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 590, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 590, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "d" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 604, +// CHECK-NEXT: "line": 59, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 604, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 631, +// CHECK-NEXT: "line": 61, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 622, +// CHECK-NEXT: "line": 60, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 618, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 622, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "e", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 625, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 618, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 625, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "f", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 604, +// CHECK-NEXT: "line": 59, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 604, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 604, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "G::(anonymous struct at {{.*}}:59:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "G::(anonymous struct at {{.*}}:59:3)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IndirectFieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 622, +// CHECK-NEXT: "line": 60, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 622, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 622, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "e" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IndirectFieldDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 625, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 625, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 625, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "f" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 648, +// CHECK-NEXT: "line": 64, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 641, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 655, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "Base1", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 648, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 641, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 648, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "Base1", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 648, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 648, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 648, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator=", +// CHECK-NEXT: "mangledName": "_ZN5Base1aSERKS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base1 &(const Base1 &)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true, +// CHECK-NEXT: "explicitlyDefaulted": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 648, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 648, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 648, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const Base1 &" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const Base1 &" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "qualTypeDetail": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const Base1" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "const", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base1" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base1" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "Base1" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 648, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 648, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 648, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator=", +// CHECK-NEXT: "mangledName": "_ZN5Base1aSEOS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base1 &(Base1 &&)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true, +// CHECK-NEXT: "explicitlyDefaulted": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 648, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 648, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 648, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base1 &&" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base1 &&" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "Base1" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDestructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 648, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 648, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 648, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "~Base1", +// CHECK-NEXT: "mangledName": "_ZN5Base1D1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "explicitlyDefaulted": "default" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 666, +// CHECK-NEXT: "line": 65, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 659, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 673, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "Base2", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 666, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 659, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 666, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "Base2", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 666, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 666, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 666, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator=", +// CHECK-NEXT: "mangledName": "_ZN5Base2aSERKS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base2 &(const Base2 &)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true, +// CHECK-NEXT: "explicitlyDefaulted": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 666, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 666, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 666, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const Base2 &" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const Base2 &" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "qualTypeDetail": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const Base2" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "const", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base2" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base2" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "Base2" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 666, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 666, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 666, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator=", +// CHECK-NEXT: "mangledName": "_ZN5Base2aSEOS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base2 &(Base2 &&)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true, +// CHECK-NEXT: "explicitlyDefaulted": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 666, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 666, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 666, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base2 &&" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base2 &&" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "Base2" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDestructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 666, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 666, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 666, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "~Base2", +// CHECK-NEXT: "mangledName": "_ZN5Base2D1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "explicitlyDefaulted": "default" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 684, +// CHECK-NEXT: "line": 66, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 677, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 691, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "Base3", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isPOD": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 684, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 677, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 684, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "Base3", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 684, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 684, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 684, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator=", +// CHECK-NEXT: "mangledName": "_ZN5Base3aSERKS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base3 &(const Base3 &)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true, +// CHECK-NEXT: "explicitlyDefaulted": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 684, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 684, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 684, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const Base3 &" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const Base3 &" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "qualTypeDetail": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const Base3" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "const", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base3" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base3" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "Base3" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 684, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 684, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 684, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator=", +// CHECK-NEXT: "mangledName": "_ZN5Base3aSEOS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base3 &(Base3 &&)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "constexpr": true, +// CHECK-NEXT: "explicitlyDefaulted": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 684, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 684, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 684, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base3 &&" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base3 &&" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "Base3" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDestructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 684, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 684, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 684, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "~Base3", +// CHECK-NEXT: "mangledName": "_ZN5Base3D1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "explicitlyDefaulted": "default" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 704, +// CHECK-NEXT: "line": 68, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 697, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 724, +// CHECK-NEXT: "line": 69, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Derived1", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "bases": [ +// CHECK-NEXT: { +// CHECK-NEXT: "access": "public", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base1" +// CHECK-NEXT: }, +// CHECK-NEXT: "writtenAccess": "none" +// CHECK-NEXT: } +// CHECK-NEXT: ], +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 704, +// CHECK-NEXT: "line": 68, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 697, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 704, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "Derived1", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 737, +// CHECK-NEXT: "line": 71, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 730, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 765, +// CHECK-NEXT: "line": 72, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Derived2", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "canPassInRegisters": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "bases": [ +// CHECK-NEXT: { +// CHECK-NEXT: "access": "private", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base1" +// CHECK-NEXT: }, +// CHECK-NEXT: "writtenAccess": "private" +// CHECK-NEXT: } +// CHECK-NEXT: ], +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 737, +// CHECK-NEXT: "line": 71, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 730, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 737, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "Derived2", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 778, +// CHECK-NEXT: "line": 74, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 771, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 806, +// CHECK-NEXT: "line": 75, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Derived3", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "nonTrivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "bases": [ +// CHECK-NEXT: { +// CHECK-NEXT: "access": "public", +// CHECK-NEXT: "isVirtual": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base1" +// CHECK-NEXT: }, +// CHECK-NEXT: "writtenAccess": "none" +// CHECK-NEXT: } +// CHECK-NEXT: ], +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 778, +// CHECK-NEXT: "line": 74, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 771, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 778, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "Derived3", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 778, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 778, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 778, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator=", +// CHECK-NEXT: "mangledName": "_ZN8Derived3aSERKS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Derived3 &(const Derived3 &)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "explicitlyDefaulted": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 778, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 778, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 778, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const Derived3 &" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const Derived3 &" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "qualTypeDetail": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const Derived3" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "const", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Derived3" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Derived3" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "Derived3" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 778, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 778, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 778, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator=", +// CHECK-NEXT: "mangledName": "_ZN8Derived3aSEOS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Derived3 &(Derived3 &&)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "explicitlyDefaulted": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 778, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 778, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 778, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Derived3 &&" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Derived3 &&" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "Derived3" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDestructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 778, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 778, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 778, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "~Derived3", +// CHECK-NEXT: "mangledName": "_ZN8Derived3D1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "explicitlyDefaulted": "default" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 819, +// CHECK-NEXT: "line": 77, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 812, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 871, +// CHECK-NEXT: "line": 78, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Derived4", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "nonTrivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "bases": [ +// CHECK-NEXT: { +// CHECK-NEXT: "access": "public", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base1" +// CHECK-NEXT: }, +// CHECK-NEXT: "writtenAccess": "none" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "access": "public", +// CHECK-NEXT: "isVirtual": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base2" +// CHECK-NEXT: }, +// CHECK-NEXT: "writtenAccess": "none" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "access": "protected", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base3" +// CHECK-NEXT: }, +// CHECK-NEXT: "writtenAccess": "protected" +// CHECK-NEXT: } +// CHECK-NEXT: ], +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 819, +// CHECK-NEXT: "line": 77, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 812, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 819, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "Derived4", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 819, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 819, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 819, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator=", +// CHECK-NEXT: "mangledName": "_ZN8Derived4aSERKS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Derived4 &(const Derived4 &)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "explicitlyDefaulted": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 819, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 819, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 819, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const Derived4 &" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const Derived4 &" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "qualTypeDetail": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const Derived4" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "const", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Derived4" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Derived4" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "Derived4" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 819, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 819, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 819, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator=", +// CHECK-NEXT: "mangledName": "_ZN8Derived4aSEOS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Derived4 &(Derived4 &&)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "explicitlyDefaulted": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 819, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 819, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 819, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Derived4 &&" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Derived4 &&" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "Derived4" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDestructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 819, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 819, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 819, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "~Derived4", +// CHECK-NEXT: "mangledName": "_ZN8Derived4D1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "explicitlyDefaulted": "default" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 884, +// CHECK-NEXT: "line": 80, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 877, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 922, +// CHECK-NEXT: "line": 81, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Derived5", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "nonTrivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "nonTrivial": true, +// CHECK-NEXT: "simple": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "bases": [ +// CHECK-NEXT: { +// CHECK-NEXT: "access": "protected", +// CHECK-NEXT: "isVirtual": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Base1" +// CHECK-NEXT: }, +// CHECK-NEXT: "writtenAccess": "protected" +// CHECK-NEXT: } +// CHECK-NEXT: ], +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 884, +// CHECK-NEXT: "line": 80, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 877, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 884, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "Derived5", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 884, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 884, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 884, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator=", +// CHECK-NEXT: "mangledName": "_ZN8Derived5aSERKS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Derived5 &(const Derived5 &)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "explicitlyDefaulted": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 884, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 884, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 884, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const Derived5 &" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const Derived5 &" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "qualTypeDetail": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const Derived5" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "const", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Derived5" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Derived5" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "Derived5" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMethodDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 884, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 884, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 884, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator=", +// CHECK-NEXT: "mangledName": "_ZN8Derived5aSEOS_", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Derived5 &(Derived5 &&)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "explicitlyDefaulted": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 884, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 884, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 884, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Derived5 &&" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Derived5 &&" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "Derived5" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDestructorDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 884, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 884, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 884, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "~Derived5", +// CHECK-NEXT: "mangledName": "_ZN8Derived5D1Ev", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inline": true, +// CHECK-NEXT: "explicitlyDefaulted": "default" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 965, +// CHECK-NEXT: "line": 84, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 958, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1003, +// CHECK-NEXT: "line": 85, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "Derived6", +// CHECK-NEXT: "tagUsed": "struct", +// CHECK-NEXT: "completeDefinition": true, +// CHECK-NEXT: "definitionData": { +// CHECK-NEXT: "canConstDefaultInit": true, +// CHECK-NEXT: "copyAssign": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "copyCtor": { +// CHECK-NEXT: "hasConstParam": true, +// CHECK-NEXT: "implicitHasConstParam": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "defaultCtor": { +// CHECK-NEXT: "defaultedIsConstexpr": true, +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "dtor": { +// CHECK-NEXT: "irrelevant": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "hasConstexprNonCopyMoveConstructor": true, +// CHECK-NEXT: "isAggregate": true, +// CHECK-NEXT: "isEmpty": true, +// CHECK-NEXT: "isLiteral": true, +// CHECK-NEXT: "isStandardLayout": true, +// CHECK-NEXT: "isTrivial": true, +// CHECK-NEXT: "isTriviallyCopyable": true, +// CHECK-NEXT: "moveAssign": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: }, +// CHECK-NEXT: "moveCtor": { +// CHECK-NEXT: "exists": true, +// CHECK-NEXT: "needsImplicit": true, +// CHECK-NEXT: "simple": true, +// CHECK-NEXT: "trivial": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "bases": [ +// CHECK-NEXT: { +// CHECK-NEXT: "access": "public", +// CHECK-NEXT: "isPackExpansion": true, +// CHECK-NEXT: "isVirtual": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Bases" +// CHECK-NEXT: }, +// CHECK-NEXT: "writtenAccess": "public" +// CHECK-NEXT: } +// CHECK-NEXT: ], +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 965, +// CHECK-NEXT: "line": 84, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 958, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 965, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "Derived6", +// CHECK-NEXT: "tagUsed": "struct" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } diff --git a/clang/test/AST/ast-dump-records.cpp b/clang/test/AST/ast-dump-records.cpp index e9b37b73002dd..af5146633978d 100644 --- a/clang/test/AST/ast-dump-records.cpp +++ b/clang/test/AST/ast-dump-records.cpp @@ -312,5 +312,5 @@ struct CheckNoCleanup { static constexpr char kConstant = '+'; // CHECK: `-VarDecl {{.*}} kConstant 'const char' static inline constexpr cinit // CHECK-NEXT: |-value: Int 43 -// CHECK-NEXT: `-CharacterLiteral {{.*}} 'char' 43 +// CHECK-NEXT: |-CharacterLiteral {{.*}} 'char' 43 }; diff --git a/clang/test/AST/ast-dump-recovery.c b/clang/test/AST/ast-dump-recovery.c index 09a03fb9d6fdf..47adb781641ec 100644 --- a/clang/test/AST/ast-dump-recovery.c +++ b/clang/test/AST/ast-dump-recovery.c @@ -1,120 +1,189 @@ // RUN: not %clang_cc1 -triple x86_64-unknown-unknown -frecovery-ast -fno-recovery-ast-type -ast-dump %s | FileCheck -strict-whitespace %s int some_func(int); - -// CHECK: VarDecl {{.*}} unmatch_arg_call 'int' cinit -// CHECK-NEXT: `-RecoveryExpr {{.*}} contains-errors -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'some_func' int unmatch_arg_call = some_func(); - const int a = 1; - -// CHECK: VarDecl {{.*}} postfix_inc -// CHECK-NEXT: `-RecoveryExpr {{.*}} contains-errors -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'a' int postfix_inc = a++; - -// CHECK: VarDecl {{.*}} unary_address -// CHECK-NEXT:`-RecoveryExpr {{.*}} contains-errors -// CHECK-NEXT: `-ParenExpr {{.*}} -// CHECK-NEXT: `-BinaryOperator {{.*}} '+' -// CHECK-NEXT: |-ImplicitCastExpr -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'a' -// CHECK-NEXT: `-IntegerLiteral {{.*}} 'int' int unary_address = &(a + 1); +// CHECK: |-FunctionDecl {{.*}} used some_func 'int (int)' +// CHECK-NEXT: | `-ParmVarDecl {{.*}} 'int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' + +// CHECK-NEXT: |-VarDecl {{.*}} unmatch_arg_call 'int' cinit +// CHECK-NEXT: | |-RecoveryExpr {{.*}} '' contains-errors lvalue +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int (int)' Function {{.*}} 'some_func' 'int (int)' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' + +// CHECK-NEXT: |-VarDecl {{.*}} used a 'const int' cinit +// CHECK-NEXT: | |-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | `-qualTypeDetail: QualType {{.*}} 'const int' const +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' + +// CHECK-NEXT: |-VarDecl {{.*}} postfix_inc 'int' cinit +// CHECK-NEXT: | |-RecoveryExpr {{.*}} '' contains-errors lvalue +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'const int' lvalue Var {{.*}} 'a' 'const int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' + +// CHECK-NEXT: |-VarDecl {{.*}} unary_address 'int' cinit +// CHECK-NEXT: | |-RecoveryExpr {{.*}} '' contains-errors lvalue +// CHECK-NEXT: | | `-ParenExpr {{.*}} 'int' +// CHECK-NEXT: | | `-BinaryOperator {{.*}} 'int' '+' +// CHECK-NEXT: | | |-ImplicitCastExpr {{.*}} 'int' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'const int' lvalue Var {{.*}} 'a' 'const int' +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' + void test1() { - // CHECK: `-RecoveryExpr {{.*}} contains-errors - // CHECK-NEXT: `-DeclRefExpr {{.*}} 'a' 'const int' static int foo = a++; // verify no crash on local static var decl. } +// CHECK-NEXT: |-FunctionDecl {{.*}} test1 'void ()' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-DeclStmt {{.*}} +// CHECK-NEXT: | `-VarDecl {{.*}} foo 'int' static cinit +// CHECK-NEXT: | |-RecoveryExpr {{.*}} '' contains-errors lvalue +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'const int' lvalue Var {{.*}} 'a' 'const int' +// CHECK-NEXT: | `-typeDetails: BuiltinType {{.*}} 'int' + void test2() { int* ptr; - // CHECK: BinaryOperator {{.*}} 'int *' contains-errors '=' - // CHECK-NEXT: |-DeclRefExpr {{.*}} 'ptr' 'int *' - // CHECK-NEXT: `-RecoveryExpr {{.*}} - // CHECK-NEXT: `-DeclRefExpr {{.*}} 'some_func' ptr = some_func(); // should not crash - int compoundOp; - // CHECK: CompoundAssignOperator {{.*}} 'int' contains-errors '+=' - // CHECK-NEXT: |-DeclRefExpr {{.*}} 'compoundOp' - // CHECK-NEXT: `-RecoveryExpr {{.*}} contains-errors - // CHECK-NEXT: `-DeclRefExpr {{.*}} 'some_func' compoundOp += some_func(); - - // CHECK: BinaryOperator {{.*}} 'int' contains-errors '||' - // CHECK-NEXT: |-RecoveryExpr {{.*}} - // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'some_func' - // CHECK-NEXT: `-IntegerLiteral {{.*}} 'int' 1 some_func() || 1; - - // CHECK: BinaryOperator {{.*}} '' contains-errors ',' - // CHECK-NEXT: |-IntegerLiteral {{.*}} 'int' 1 - // CHECK-NEXT: `-RecoveryExpr {{.*}} - // CHECK-NEXT: `-DeclRefExpr {{.*}} 'some_func' 1, some_func(); - // CHECK: BinaryOperator {{.*}} 'int' contains-errors ',' - // CHECK-NEXT: |-RecoveryExpr {{.*}} '' - // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'some_func' - // CHECK-NEXT: `-IntegerLiteral {{.*}} 'int' 1 some_func(), 1; // conditional operator (comparison is invalid) float f; - // CHECK: ConditionalOperator {{.*}} '' contains-errors - // CHECK-NEXT: |-RecoveryExpr {{.*}} '' - // CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int *' lvalue - // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'float' lvalue - // CHECK-NEXT: |-DeclRefExpr {{.*}} 'int *' lvalue - // CHECK-NEXT: `-DeclRefExpr {{.*}} 'float' lvalue (ptr > f ? ptr : f); - - // CHECK: CStyleCastExpr {{.*}} 'float' contains-errors - // CHECK-NEXT: `-RecoveryExpr {{.*}} '' - // CHECK-NEXT: `-DeclRefExpr {{.*}} 'some_func' (float)some_func(); } +// CHECK-NEXT: |-FunctionDecl {{.*}} test2 'void ()' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used ptr 'int *' +// CHECK-NEXT: | | `-typeDetails: PointerType {{.*}} 'int *' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-BinaryOperator {{.*}} 'int *' contains-errors '=' +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} 'ptr' 'int *' +// CHECK-NEXT: | | `-RecoveryExpr {{.*}} '' contains-errors lvalue +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int (int)' Function {{.*}} 'some_func' 'int (int)' +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used compoundOp 'int' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | |-CompoundAssignOperator {{.*}} 'int' contains-errors '+=' ComputeLHSTy='NULL TYPE' ComputeResultTy='NULL TYPE' +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'compoundOp' 'int' +// CHECK-NEXT: | | `-RecoveryExpr {{.*}} '' contains-errors lvalue +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int (int)' Function {{.*}} 'some_func' 'int (int)' +// CHECK-NEXT: | |-BinaryOperator {{.*}} 'int' contains-errors '||' +// CHECK-NEXT: | | |-RecoveryExpr {{.*}} '' contains-errors lvalue +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int (int)' Function {{.*}} 'some_func' 'int (int)' +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | |-BinaryOperator {{.*}} '' contains-errors ',' +// CHECK-NEXT: | | |-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | | `-RecoveryExpr {{.*}} '' contains-errors lvalue +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int (int)' Function {{.*}} 'some_func' 'int (int)' +// CHECK-NEXT: | |-BinaryOperator {{.*}} 'int' contains-errors ',' +// CHECK-NEXT: | | |-RecoveryExpr {{.*}} '' contains-errors lvalue +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'int (int)' Function {{.*}} 'some_func' 'int (int)' +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used f 'float' +// CHECK-NEXT: | | `-typeDetails: BuiltinType {{.*}} 'float' +// CHECK-NEXT: | |-ParenExpr {{.*}} '' contains-errors +// CHECK-NEXT: | | `-ConditionalOperator {{.*}} '' contains-errors +// CHECK-NEXT: | | |-RecoveryExpr {{.*}} '' contains-errors lvalue +// CHECK-NEXT: | | | |-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} 'ptr' 'int *' +// CHECK-NEXT: | | | `-DeclRefExpr {{.*}} 'float' lvalue Var {{.*}} 'f' 'float' +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int *' lvalue Var {{.*}} 'ptr' 'int *' +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'float' lvalue Var {{.*}} 'f' 'float' +// CHECK-NEXT: | `-CStyleCastExpr {{.*}} 'float' contains-errors +// CHECK-NEXT: | `-RecoveryExpr {{.*}} '' contains-errors lvalue +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int (int)' Function {{.*}} 'some_func' 'int (int)' + void test3() { - // CHECK: CallExpr {{.*}} '' contains-errors - // CHECK-NEXT: |-ParenExpr {{.*}} contains-errors lvalue - // CHECK-NEXT: | `-RecoveryExpr {{.*}} contains-errors - // CHECK-NEXT: | `-DeclRefExpr {{.*}} '__builtin_classify_type' - // CHECK-NEXT: `-IntegerLiteral {{.*}} 'int' 1 (*__builtin_classify_type)(1); } +// CHECK-NEXT: |-FunctionDecl {{.*}} test3 'void ()' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-CallExpr {{.*}} '' contains-errors +// CHECK-NEXT: | |-ParenExpr {{.*}} '' contains-errors lvalue +// CHECK-NEXT: | | `-RecoveryExpr {{.*}} '' contains-errors lvalue +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} '' Function {{.*}} '__builtin_classify_type' 'int ()' +// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 1 + +// CHECK-NEXT: |-FunctionDecl {{.*}} implicit used __builtin_classify_type 'int ()' extern +// CHECK-NEXT: | |-attrDetails: BuiltinAttr {{.*}} <> Implicit 212 +// CHECK-NEXT: | |-attrDetails: NoThrowAttr {{.*}} Implicit +// CHECK-NEXT: | `-attrDetails: ConstAttr {{.*}} Implicit + // Verify no crash. void test4() { enum GH62446 { - // CHECK: RecoveryExpr {{.*}} '' contains-errors lvalue - // CHECK-NEXT: |-StringLiteral {{.*}} "a" - // CHECK-NEXT: `-IntegerLiteral {{.*}} 2 invalid_enum_value = "a" * 2, b, }; } +// CHECK-NEXT: |-FunctionDecl {{.*}} test4 'void ()' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | `-DeclStmt {{.*}} +// CHECK-NEXT: | `-EnumDecl {{.*}} GH62446 +// CHECK-NEXT: | |-EnumConstantDecl {{.*}} invalid_enum_value 'int' +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} 'int' contains-errors +// CHECK-NEXT: | | `-ImplicitCastExpr {{.*}} '' contains-errors +// CHECK-NEXT: | | `-RecoveryExpr {{.*}} '' contains-errors lvalue +// CHECK-NEXT: | | |-StringLiteral {{.*}} 'char[2]' lvalue "a" +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 2 +// CHECK-NEXT: | `-EnumConstantDecl {{.*}} b 'int' + // No crash on DeclRefExpr that refers to ValueDecl with invalid initializers. void test7() { int b[] = {""()}; - // CHECK: CStyleCastExpr {{.*}} 'unsigned int' contains-errors - // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int[]' contains-errors (unsigned) b; // GH50236 - - // CHECK: BinaryOperator {{.*}} '' contains-errors '+' - // CHECK-NEXT: |-DeclRefExpr {{.*}} 'int[]' contains-errors - // CHECK-NEXT: `-IntegerLiteral {{.*}} b + 1; // GH50243 - - // CHECK: CallExpr {{.*}} '' contains-errors - // CHECK-NEXT: |-DeclRefExpr {{.*}} 'int ()' Function - // CHECK-NEXT: `-DeclRefExpr {{.*}} 'int[]' contains-errors return c(b); // GH48636 } + +// CHECK-NEXT: |-FunctionDecl {{.*}} test7 'void ()' +// CHECK-NEXT: | `-CompoundStmt {{.*}} +// CHECK-NEXT: | |-DeclStmt {{.*}} +// CHECK-NEXT: | | `-VarDecl {{.*}} used b 'int[]' cinit +// CHECK-NEXT: | | |-InitListExpr {{.*}} 'void' contains-errors +// CHECK-NEXT: | | | `-RecoveryExpr {{.*}} '' contains-errors lvalue +// CHECK-NEXT: | | | `-StringLiteral {{.*}} 'char[1]' lvalue "" +// CHECK-NEXT: | | `-typeDetails: DependentSizedArrayType {{.*}} 'int[]' dependent +// CHECK-NEXT: | | |-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | | `-<<>> +// CHECK-NEXT: | |-CStyleCastExpr {{.*}} 'unsigned int' contains-errors +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int[]' contains-errors lvalue Var {{.*}} 'b' 'int[]' +// CHECK-NEXT: | |-BinaryOperator {{.*}} '' contains-errors '+' +// CHECK-NEXT: | | |-DeclRefExpr {{.*}} 'int[]' contains-errors lvalue Var {{.*}} 'b' 'int[]' +// CHECK-NEXT: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK-NEXT: | `-ReturnStmt {{.*}} +// CHECK-NEXT: | `-CallExpr {{.*}} '' contains-errors +// CHECK-NEXT: | |-DeclRefExpr {{.*}} 'int ()' Function {{.*}} 'c' 'int ()' +// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int[]' contains-errors lvalue Var {{.*}} 'b' 'int[]' + int test8_GH50320_b[] = {""()}; -// CHECK: ArraySubscriptExpr {{.*}} 'int' contains-errors lvalue int test8 = test_8GH50320_b[0]; + +// CHECK: |-VarDecl {{.*}} used test8_GH50320_b 'int[]' cinit +// CHECK-NEXT: | |-InitListExpr {{.*}} 'void' contains-errors +// CHECK-NEXT: | | `-RecoveryExpr {{.*}} '' contains-errors lvalue +// CHECK-NEXT: | | `-StringLiteral {{.*}} 'char[1]' lvalue "" +// CHECK-NEXT: | `-typeDetails: DependentSizedArrayType {{.*}} 'int[]' dependent +// CHECK-NEXT: | |-typeDetails: BuiltinType {{.*}} 'int' +// CHECK-NEXT: | `-<<>> +// CHECK-NEXT: `-VarDecl {{.*}} test8 'int' cinit +// CHECK-NEXT: |-ImplicitCastExpr {{.*}} 'int' contains-errors +// CHECK-NEXT: | `-ArraySubscriptExpr {{.*}} 'int' contains-errors lvalue +// CHECK-NEXT: | |-ImplicitCastExpr {{.*}} 'int *' contains-errors +// CHECK-NEXT: | | `-DeclRefExpr {{.*}} 'int[]' contains-errors lvalue Var {{.*}} 'test8_GH50320_b' 'int[]' +// CHECK-NEXT: | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK-NEXT: `-typeDetails: BuiltinType {{.*}} 'int' \ No newline at end of file diff --git a/clang/test/AST/ast-dump-recovery.cpp b/clang/test/AST/ast-dump-recovery.cpp index a8e30f1759e9f..15caa793c2ea5 100644 --- a/clang/test/AST/ast-dump-recovery.cpp +++ b/clang/test/AST/ast-dump-recovery.cpp @@ -4,9 +4,9 @@ int some_func(int *); // CHECK: VarDecl {{.*}} invalid_call -// CHECK-NEXT: `-RecoveryExpr {{.*}} 'int' contains-errors -// CHECK-NEXT: |-UnresolvedLookupExpr {{.*}} 'some_func' -// CHECK-NEXT: `-IntegerLiteral {{.*}} 123 +// CHECK-NEXT: RecoveryExpr {{.*}} 'int' contains-errors +// CHECK-NEXT: UnresolvedLookupExpr {{.*}} 'some_func' +// CHECK-NEXT: IntegerLiteral {{.*}} 123 // DISABLED-NOT: -RecoveryExpr {{.*}} contains-errors int invalid_call = some_func(123); @@ -35,37 +35,37 @@ int ambig_func(double); int ambig_func(float); // CHECK: VarDecl {{.*}} ambig_call -// CHECK-NEXT: `-RecoveryExpr {{.*}} 'int' contains-errors -// CHECK-NEXT: |-UnresolvedLookupExpr {{.*}} 'ambig_func' -// CHECK-NEXT: `-IntegerLiteral {{.*}} 123 +// CHECK-NEXT: RecoveryExpr {{.*}} 'int' contains-errors +// CHECK-NEXT: UnresolvedLookupExpr {{.*}} 'ambig_func' +// CHECK-NEXT: IntegerLiteral {{.*}} 123 // DISABLED-NOT: -RecoveryExpr {{.*}} contains-errors int ambig_call = ambig_func(123); constexpr int a = 10; // CHECK: VarDecl {{.*}} postfix_inc -// CHECK-NEXT:`-RecoveryExpr {{.*}} contains-errors -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'a' +// CHECK-NEXT: RecoveryExpr {{.*}} contains-errors +// CHECK-NEXT: DeclRefExpr {{.*}} 'a' // DISABLED-NOT: -RecoveryExpr {{.*}} contains-errors int postfix_inc = a++; // CHECK: VarDecl {{.*}} prefix_inc -// CHECK-NEXT:`-RecoveryExpr {{.*}} contains-errors -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'a' +// CHECK-NEXT: RecoveryExpr {{.*}} contains-errors +// CHECK-NEXT: DeclRefExpr {{.*}} 'a' // DISABLED-NOT: -RecoveryExpr {{.*}} contains-errors int prefix_inc = ++a; // CHECK: VarDecl {{.*}} unary_address -// CHECK-NEXT:`-RecoveryExpr {{.*}} contains-errors -// CHECK-NEXT: `-ParenExpr {{.*}} -// CHECK-NEXT: `-BinaryOperator {{.*}} '+' -// CHECK-NEXT: |-ImplicitCastExpr -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'a' +// CHECK-NEXT: RecoveryExpr {{.*}} contains-errors +// CHECK-NEXT: ParenExpr {{.*}} +// CHECK-NEXT: BinaryOperator {{.*}} '+' +// CHECK-NEXT: ImplicitCastExpr +// CHECK-NEXT: DeclRefExpr {{.*}} 'a' // DISABLED-NOT: -RecoveryExpr {{.*}} contains-errors int unary_address = &(a + 1); // CHECK: VarDecl {{.*}} unary_bitinverse -// CHECK-NEXT:`-RecoveryExpr {{.*}} contains-errors +// CHECK-NEXT: RecoveryExpr {{.*}} contains-errors // CHECK-NEXT: `-ParenExpr {{.*}} // CHECK-NEXT: `-BinaryOperator {{.*}} '+' // CHECK-NEXT: |-ImplicitCastExpr @@ -75,14 +75,14 @@ int unary_address = &(a + 1); int unary_bitinverse = ~(a + 0.0); // CHECK: VarDecl {{.*}} binary -// CHECK-NEXT:`-RecoveryExpr {{.*}} contains-errors +// CHECK-NEXT: RecoveryExpr {{.*}} contains-errors // CHECK-NEXT: |-DeclRefExpr {{.*}} 'a' // CHECK-NEXT: `-CXXNullPtrLiteralExpr // DISABLED-NOT: -RecoveryExpr {{.*}} contains-errors int binary = a + nullptr; // CHECK: VarDecl {{.*}} ternary -// CHECK-NEXT:`-RecoveryExpr {{.*}} contains-errors +// CHECK-NEXT: RecoveryExpr {{.*}} contains-errors // CHECK-NEXT: |-DeclRefExpr {{.*}} 'a' // CHECK-NEXT: |-CXXNullPtrLiteralExpr // CHECK-NEXT: `-DeclRefExpr {{.*}} 'a' @@ -91,7 +91,7 @@ int ternary = a ? nullptr : a; // CHECK: FunctionDecl // CHECK-NEXT:|-ParmVarDecl {{.*}} x -// CHECK-NEXT:`-CompoundStmt +// CHECK:| `-CompoundStmt // CHECK-NEXT: |-RecoveryExpr {{.*}} contains-errors // CHECK-NEXT: | `-DeclRefExpr {{.*}} 'foo' // CHECK-NEXT: `-CallExpr {{.*}} contains-errors @@ -142,39 +142,39 @@ void test2(Foo2 f) { auto f(); int f(double); // CHECK: VarDecl {{.*}} unknown_type_call 'int' -// CHECK-NEXT: `-RecoveryExpr {{.*}} '' +// CHECK-NEXT: RecoveryExpr {{.*}} '' int unknown_type_call = f(0, 0); void InvalidInitalizer(int x) { struct Bar { Bar(); }; // CHECK: `-VarDecl {{.*}} a1 'Bar' - // CHECK-NEXT: `-RecoveryExpr {{.*}} contains-errors + // CHECK-NEXT: RecoveryExpr {{.*}} contains-errors // CHECK-NEXT: `-IntegerLiteral {{.*}} 'int' 1 Bar a1(1); // CHECK: `-VarDecl {{.*}} a2 'Bar' - // CHECK-NEXT: `-RecoveryExpr {{.*}} contains-errors + // CHECK-NEXT: RecoveryExpr {{.*}} contains-errors // CHECK-NEXT: `-DeclRefExpr {{.*}} 'x' Bar a2(x); // CHECK: `-VarDecl {{.*}} a3 'Bar' - // CHECK-NEXT: `-RecoveryExpr {{.*}} contains-errors + // CHECK-NEXT: RecoveryExpr {{.*}} contains-errors // CHECK-NEXT: `-InitListExpr // CHECK-NEDT: `-DeclRefExpr {{.*}} 'x' Bar a3{x}; // CHECK: `-VarDecl {{.*}} b1 'Bar' - // CHECK-NEXT: `-RecoveryExpr {{.*}} contains-errors + // CHECK-NEXT: RecoveryExpr {{.*}} contains-errors // CHECK-NEXT: `-IntegerLiteral {{.*}} 'int' 1 Bar b1 = 1; // CHECK: `-VarDecl {{.*}} b2 'Bar' - // CHECK-NEXT: `-RecoveryExpr {{.*}} contains-errors + // CHECK-NEXT: RecoveryExpr {{.*}} contains-errors // CHECK-NEXT: `-InitListExpr Bar b2 = {1}; // CHECK: `-VarDecl {{.*}} b3 'Bar' - // CHECK-NEXT: `-RecoveryExpr {{.*}} 'Bar' contains-errors + // CHECK-NEXT: RecoveryExpr {{.*}} 'Bar' contains-errors // CHECK-NEXT: `-DeclRefExpr {{.*}} 'x' 'int' Bar b3 = Bar(x); // CHECK: `-VarDecl {{.*}} b4 'Bar' - // CHECK-NEXT: `-RecoveryExpr {{.*}} 'Bar' contains-errors + // CHECK-NEXT: RecoveryExpr {{.*}} 'Bar' contains-errors // CHECK-NEXT: `-InitListExpr {{.*}} 'void' // CHECK-NEXT: `-DeclRefExpr {{.*}} 'x' 'int' Bar b4 = Bar{x}; @@ -185,7 +185,7 @@ void InvalidInitalizer(int x) { } // CHECK: VarDecl {{.*}} NoCrashOnInvalidInitList -// CHECK-NEXT: `-RecoveryExpr {{.*}} '' contains-errors lvalue +// CHECK-NEXT: RecoveryExpr {{.*}} '' contains-errors lvalue // CHECK-NEXT: `-InitListExpr // CHECK-NEXT: `-DesignatedInitExpr {{.*}} 'void' // CHECK-NEXT: `-CXXNullPtrLiteralExpr {{.*}} 'std::nullptr_t' @@ -214,7 +214,7 @@ void CtorInitializer() { BaseInit(float) : S("no match") {} // CHECK: CXXConstructorDecl {{.*}} BaseInit 'void (float)' // CHECK-NEXT: |-ParmVarDecl - // CHECK-NEXT: |-CXXCtorInitializer 'S' + // CHECK: |-CXXCtorInitializer 'S' // CHECK-NEXT: | `-RecoveryExpr {{.*}} 'S' // CHECK-NEXT: | `-StringLiteral }; @@ -222,7 +222,7 @@ void CtorInitializer() { DelegatingInit(float) : DelegatingInit("no match") {} // CHECK: CXXConstructorDecl {{.*}} DelegatingInit 'void (float)' // CHECK-NEXT: |-ParmVarDecl - // CHECK-NEXT: |-CXXCtorInitializer 'DelegatingInit' + // CHECK: |-CXXCtorInitializer 'DelegatingInit' // CHECK-NEXT: | `-RecoveryExpr {{.*}} 'DelegatingInit' // CHECK-NEXT: | `-StringLiteral }; @@ -293,11 +293,11 @@ union U { // CHECK-NEXT: `-CompoundStmt {{.*}} // CHECK-NEXT: `-DeclStmt {{.*}} // CHECK-NEXT: `-VarDecl {{.*}} g 'U':'GH112560::U' listinit -// CHECK-NEXT: `-InitListExpr {{.*}} 'U':'GH112560::U' contains-errors field Field {{.*}} 'f' 'int' +// CHECK-NEXT: InitListExpr {{.*}} 'U':'GH112560::U' contains-errors field Field {{.*}} 'f' 'int' // CHECK-NEXT: `-CXXDefaultInitExpr {{.*}} 'int' contains-errors has rewritten init // CHECK-NEXT: `-RecoveryExpr {{.*}} 'int' contains-errors // DISABLED-NOT: -RecoveryExpr {{.*}} contains-errors void foo() { U g{}; } -} // namespace GH112560 +} // namespace GH112560 \ No newline at end of file diff --git a/clang/test/AST/ast-dump-riscv-attributes.cpp b/clang/test/AST/ast-dump-riscv-attributes.cpp index 7efe626072311..946c4b5dbe7af 100644 --- a/clang/test/AST/ast-dump-riscv-attributes.cpp +++ b/clang/test/AST/ast-dump-riscv-attributes.cpp @@ -1,12 +1,11 @@ // RUN: %clang_cc1 -triple riscv64 -ast-dump -ast-dump-filter c23 -std=c23 -x c %s | FileCheck --strict-whitespace %s -// CHECK: FunctionDecl{{.*}}pre_c23 -// CHECK-NEXT: |-CompoundStmt -// CHECK-NEXT: `-RISCVInterruptAttr{{.*}}supervisor +// CHECK: FunctionDecl {{.*}} pre_c23 'void (void)' +// CHECK-NEXT: |-CompoundStmt {{.*}} +// CHECK-NEXT: `-attrDetails: RISCVInterruptAttr {{.*}} supervisor __attribute__((interrupt("supervisor"))) void pre_c23(){} -// CHECK: FunctionDecl{{.*}}in_c23 -// CHECK-NEXT: |-CompoundStmt -// CHECK-NEXT: `-RISCVInterruptAttr{{.*}}supervisor -// CHECK-NOT: `-RISCVInterruptAttr{{.*}}machine +// CHECK: FunctionDecl {{.*}} in_c23 'void (void)' +// CHECK-NEXT: |-CompoundStmt {{.*}} +// CHECK-NEXT: `-attrDetails: RISCVInterruptAttr {{.*}} supervisor [[gnu::interrupt("supervisor")]] void in_c23(){} diff --git a/clang/test/AST/ast-dump-sme-attributes.cpp b/clang/test/AST/ast-dump-sme-attributes.cpp index 133648d90a157..89edeb5f68f74 100644 --- a/clang/test/AST/ast-dump-sme-attributes.cpp +++ b/clang/test/AST/ast-dump-sme-attributes.cpp @@ -12,10 +12,10 @@ struct Foo { // CHECK-NEXT: |-CXXMethodDecl {{.*}} f_streaming 'void () __arm_streaming' // CHECK-NEXT: |-CXXMethodDecl {{.*}} f_streaming_compatible 'void () __arm_streaming_compatible' // CHECK-NEXT: |-CXXMethodDecl {{.*}} f_locally_streaming 'void ()' -// CHECK-NEXT: | `-ArmLocallyStreamingAttr +// CHECK-NEXT: | `-attrDetails: ArmLocallyStreamingAttr // CHECK-NEXT: |-CXXMethodDecl {{.*}} f_shared_za 'void () __arm_inout("za")' // CHECK-NEXT: |-CXXMethodDecl {{.*}} f_new_za 'void ()' -// CHECK-NEXT: | `-ArmNewAttr {{.*}} za +// CHECK-NEXT: | `-attrDetails: ArmNewAttr {{.*}} za // CHECK-NEXT: |-CXXMethodDecl {{.*}} f_preserves_za 'void () __arm_preserves("za")' void f_streaming() __arm_streaming; void f_streaming_compatible() __arm_streaming_compatible; @@ -25,42 +25,52 @@ struct Foo { void f_preserves_za() __arm_preserves("za"); -// CHECK: |-CXXMethodDecl {{.*}} test_lambda 'int (int)' implicit-inline -// CHECK: `-CompoundStmt -// CHECK-NEXT: |-DeclStmt -// CHECK-NEXT: | `-VarDecl -// CHECK-NEXT: | `-LambdaExpr -// CHECK-NEXT: | |-CXXRecordDecl -// CHECK: | | |-CXXMethodDecl {{.*}} used constexpr operator() 'int (int) __arm_streaming const' inline -// CHECK: | | |-CXXConversionDecl {{.*}} implicit constexpr operator int (*)(int) __arm_streaming 'int (*() const noexcept)(int) __arm_streaming' inline -// CHECK: | | |-CXXMethodDecl {{.*}} implicit __invoke 'int (int) __arm_streaming' static inline -// CHECK: `-ReturnStmt -// CHECK: `-CXXOperatorCallExpr -// CHECK-NEXT: |-ImplicitCastExpr {{.*}} 'int (*)(int) __arm_streaming const' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int (int) __arm_streaming const' lvalue CXXMethod {{.*}} 'operator()' 'int (int) __arm_streaming const' + int test_lambda(int x) { auto F = [](int x) __arm_streaming { return x; }; return F(x); } -// CHECK: |-TypedefDecl {{.*}} referenced s_ptrty 'void (*)(int, int) __arm_streaming' -// CHECK-NEXT: | `-PointerType {{.*}} 'void (*)(int, int) __arm_streaming' -// CHECK-NEXT: | `-ParenType {{.*}} 'void (int, int) __arm_streaming' sugar -// CHECK-NEXT: | `-FunctionProtoType {{.*}} 'void (int, int) __arm_streaming' cdecl +// CHECK: |-CXXMethodDecl {{.*}} test_lambda 'int (int)' implicit-inline +// CHECK: | |-ParmVarDecl {{.*}} used x 'int' +// CHECK: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | |-DeclStmt {{.*}} +// CHECK: | | `-VarDecl {{.*}} used F '(lambda at {{.*}})' cinit +// CHECK: | | |-LambdaExpr {{.*}} '(lambda at {{.*}})' + typedef void (*s_ptrty) (int, int) __arm_streaming; -// CHECK: `-CXXMethodDecl {{.*}} test_streaming_ptrty 'void (s_ptrty, int, int)' implicit-inline -// CHECK-NEXT: |-ParmVarDecl {{.*}} used f 's_ptrty':'void (*)(int, int) __arm_streaming' -// CHECK-NEXT: |-ParmVarDecl {{.*}} used x 'int' -// CHECK-NEXT: |-ParmVarDecl {{.*}} used y 'int' -// CHECK: `-CompoundStmt -// CHECK-NEXT: `-ReturnStmt -// CHECK-NEXT: `-CallExpr -// CHECK-NEXT: |-ImplicitCastExpr {{.*}} 's_ptrty':'void (*)(int, int) __arm_streaming' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 's_ptrty':'void (*)(int, int) __arm_streaming' lvalue ParmVar {{.*}} 'f' 's_ptrty':'void (*)(int, int) __arm_streaming' -// CHECK-NEXT: |-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' -// CHECK-NEXT: `-ImplicitCastExpr {{.*}} 'int' -// CHECK-NEXT: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' +// CHECK: |-TypedefDecl {{.*}} referenced s_ptrty 'void (*)(int, int) __arm_streaming' +// CHECK-NEXT: | `-typeDetails: PointerType {{.*}} 'void (*)(int, int) __arm_streaming' +// CHECK-NEXT: | `-typeDetails: ParenType {{.*}} 'void (int, int) __arm_streaming' sugar +// CHECK-NEXT: | `-typeDetails: FunctionProtoType {{.*}} 'void (int, int) __arm_streaming' cdecl + void test_streaming_ptrty(s_ptrty f, int x, int y) { return f(x, y); }; + +// CHECK: `-CXXMethodDecl {{.*}} test_streaming_ptrty 'void (s_ptrty, int, int)' implicit-inline +// CHECK: |-ParmVarDecl {{.*}} used f 's_ptrty':'void (*)(int, int) __arm_streaming' +// CHECK: | `-typeDetails: ElaboratedType {{.*}} 's_ptrty' sugar +// CHECK: | `-typeDetails: TypedefType {{.*}} 'Foo::s_ptrty' sugar +// CHECK: | |-Typedef {{.*}} 's_ptrty' +// CHECK: | `-typeDetails: PointerType {{.*}} 'void (*)(int, int) __arm_streaming' +// CHECK: | `-typeDetails: ParenType {{.*}} 'void (int, int) __arm_streaming' sugar +// CHECK: | `-typeDetails: FunctionProtoType {{.*}} 'void (int, int) __arm_streaming' cdecl +// CHECK: | |-typeDetails: BuiltinType {{.*}} 'void' +// CHECK: | |-functionDetails: cdeclReturnType {{.*}} 'void' +// CHECK: | |-typeDetails: BuiltinType {{.*}} 'int' +// CHECK: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK: |-ParmVarDecl {{.*}} used x 'int' +// CHECK: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK: |-ParmVarDecl {{.*}} used y 'int' +// CHECK: | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK: `-CompoundStmt {{.*}} +// CHECK: `-ReturnStmt {{.*}} +// CHECK: `-CallExpr {{.*}} 'void' +// CHECK: |-ImplicitCastExpr {{.*}} 's_ptrty':'void (*)(int, int) __arm_streaming' +// CHECK: | `-DeclRefExpr {{.*}} 's_ptrty':'void (*)(int, int) __arm_streaming' lvalue ParmVar {{.*}} 'f' 's_ptrty':'void (*)(int, int) __arm_streaming' +// CHECK: |-ImplicitCastExpr {{.*}} 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'x' 'int' +// CHECK: `-ImplicitCastExpr {{.*}} 'int' +// CHECK: `-DeclRefExpr {{.*}} 'int' lvalue ParmVar {{.*}} 'y' 'int' }; diff --git a/clang/test/AST/ast-dump-stmt-json.c b/clang/test/AST/ast-dump-stmt-json.c index a7f5648b8075f..03252a9a8134d 100644 --- a/clang/test/AST/ast-dump-stmt-json.c +++ b/clang/test/AST/ast-dump-stmt-json.c @@ -1,5480 +1,6038 @@ -// RUN: %clang_cc1 -std=gnu11 -triple x86_64-unknown-unknown -ast-dump=json %s | FileCheck %s - -int TestLocation = 0; -int TestIndent = 1 + (1); - -void TestDeclStmt(void) { - int x = 0; - int y, z; -} - -int TestOpaqueValueExpr = 0 ?: 1; - -void TestUnaryOperatorExpr(void) { - char T1 = 1; - int T2 = 1; - - T1++; - T2++; - - -T1; - -T2; - - ~T1; - ~T2; -} - -void TestGenericSelectionExpressions(int i) { - _Generic(i, int : 12); - _Generic(i, int : 12, default : 0); - _Generic(i, default : 0, int : 12); - _Generic(i, int : 12, float : 10, default : 100); - - int j = _Generic(i, int : 12); -} - -void TestLabelsAndGoto(void) { - // Note: case and default labels are handled by TestSwitch(). - -label1: - ; - - goto label2; - -label2: - 0; - - void *ptr = &&label1; - - goto *ptr; -} - -void TestSwitch(int i) { - switch (i) { - case 0: - break; - case 1: - case 2: - break; - default: - break; - case 3 ... 5: - break; - } -} - -void TestIf(_Bool b) { - if (b) - ; - - if (b) {} - - if (b) - ; - else - ; - - if (b) {} - else {} - - if (b) - ; - else if (b) - ; - - if (b) - ; - else if (b) - ; - else - ; -} - -void TestIteration(_Bool b) { - while (b) - ; - - do - ; - while (b); - - for (int i = 0; i < 10; ++i) - ; - - for (b; b; b) - ; - - for (; b; b = !b) - ; - - for (; b;) - ; - - for (;; b = !b) - ; - - for (;;) - ; -} - -void TestJumps(void) { - // goto and computed goto was tested in TestLabelsAndGoto(). - - while (1) { - continue; - break; - } - return; - - return TestSwitch(1); -} - -void TestMiscStmts(void) { - ({int a = 10; a;}); -} - -void TestLineNumbers(void) { - int a; - -#define FOO(x) x - -#line 100000 - int b; - -#line 200000 - FOO(1); - -#undef FOO -} - -void TestVLA(int n) { - double vla[n]; -} - -// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py -// using --filters=VarDecl,CompoundStmt - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 3, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 12 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestLocation", -// CHECK-NEXT: "mangledName": "TestLocation", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 4, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestIndent", -// CHECK-NEXT: "mangledName": "TestIndent", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "+", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParenExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 6, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 9, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 7, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 8, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "y", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "z", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 11, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 32, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestOpaqueValueExpr", -// CHECK-NEXT: "mangledName": "TestOpaqueValueExpr", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryConditionalOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 32, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "OpaqueValueExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 32, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 32, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 13, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 25, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 14, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "T1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralCast", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 15, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "T2", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 17, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isPostfix": true, -// CHECK-NEXT: "opcode": "++", -// CHECK-NEXT: "canOverflow": false, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "T1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 18, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isPostfix": true, -// CHECK-NEXT: "opcode": "++", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "T2", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 20, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "-", -// CHECK-NEXT: "canOverflow": false, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralCast", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "T1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 21, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "-", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "T2", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 23, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "~", -// CHECK-NEXT: "canOverflow": false, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralCast", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "T1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "char" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 24, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "~", -// CHECK-NEXT: "canOverflow": false, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "T2", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 45, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 34, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "GenericSelectionExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 28, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "nonOdrUseReason": "unevaluated" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BuiltinType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "associationKind": "case", -// CHECK-NEXT: "selected": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BuiltinType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "GenericSelectionExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 29, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 36, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "nonOdrUseReason": "unevaluated" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BuiltinType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "associationKind": "case", -// CHECK-NEXT: "selected": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BuiltinType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "associationKind": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 35, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 35, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "GenericSelectionExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 30, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 36, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "nonOdrUseReason": "unevaluated" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BuiltinType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "associationKind": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "associationKind": "case", -// CHECK-NEXT: "selected": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BuiltinType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "GenericSelectionExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 31, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 50, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "nonOdrUseReason": "unevaluated" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BuiltinType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "associationKind": "case", -// CHECK-NEXT: "selected": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BuiltinType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "associationKind": "case", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BuiltinType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "float" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "10" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "associationKind": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 47, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 47, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "100" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 33, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 32, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 31, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "j", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "GenericSelectionExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 31, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "nonOdrUseReason": "unevaluated" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BuiltinType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "associationKind": "case", -// CHECK-NEXT: "selected": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BuiltinType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 36, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 50, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "LabelStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 39, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 40, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "label1", -// CHECK-NEXT: "declId": "0x{{.*}}", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "GotoStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 42, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "targetLabelDeclId": "0x{{.*}}" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "LabelStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 44, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 45, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "label2", -// CHECK-NEXT: "declId": "0x{{.*}}", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 47, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "ptr", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "AddrLabelExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "name": "label1", -// CHECK-NEXT: "labelDeclId": "0x{{.*}}" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IndirectGotoStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 49, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "NoOp", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "ptr", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 64, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "SwitchStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 53, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 63, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 53, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 63, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CaseStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 54, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 55, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ConstantExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 54, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BreakStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 55, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CaseStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 56, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 58, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ConstantExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 56, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CaseStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 57, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 58, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ConstantExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 57, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "2" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BreakStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 58, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DefaultStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 59, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 7 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 60, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BreakStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CaseStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 61, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 62, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isGNURange": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ConstantExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 61, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "3" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ConstantExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "5" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BreakStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 62, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 91, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IfStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 67, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 68, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 67, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 68, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IfStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 70, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IfStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 72, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 75, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "hasElse": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 72, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 73, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 75, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IfStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 77, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 78, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "hasElse": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 77, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 78, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IfStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 80, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 83, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "hasElse": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 80, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 81, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IfStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 82, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 83, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 82, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 83, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IfStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 85, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 90, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "hasElse": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 85, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 86, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IfStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 87, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 90, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "hasElse": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 87, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 88, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 90, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 118, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "WhileStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 94, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 95, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 94, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 95, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DoStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 97, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 99, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 98, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 99, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ForStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 101, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 102, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 101, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: {}, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "<", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "10" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "++", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 29, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 102, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ForStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 104, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 105, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 104, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: {}, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 105, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ForStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 107, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 108, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: {}, -// CHECK-NEXT: {}, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 107, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "=", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralToBoolean", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "!", -// CHECK-NEXT: "canOverflow": false, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 108, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ForStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 110, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 111, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: {}, -// CHECK-NEXT: {}, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 110, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: {}, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 111, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ForStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 113, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 114, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: {}, -// CHECK-NEXT: {}, -// CHECK-NEXT: {}, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 113, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "=", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralToBoolean", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "!", -// CHECK-NEXT: "canOverflow": false, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "_Bool" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 114, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ForStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 116, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 117, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: {}, -// CHECK-NEXT: {}, -// CHECK-NEXT: {}, -// CHECK-NEXT: {}, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 120, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 130, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "WhileStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 123, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 126, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 123, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 126, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ContinueStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 124, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BreakStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 125, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ReturnStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 127, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ReturnStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 129, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (*)(int)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "FunctionToPointerDecay", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (int)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "TestSwitch", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (int)" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 132, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 134, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "StmtExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 133, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "10" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 136, -// CHECK-NEXT: "col": 28, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 148, -// CHECK-NEXT: "presumedLine": 200003, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 137, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 142, -// CHECK-NEXT: "presumedLine": 100000, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "spellingLoc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 145, -// CHECK-NEXT: "presumedLine": 200000, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "expansionLoc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3, -// CHECK-NEXT: "isMacroArgExpansion": true -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "spellingLoc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "expansionLoc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3, -// CHECK-NEXT: "isMacroArgExpansion": true -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 152, -// CHECK-NEXT: "presumedLine": 200007, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 151, -// CHECK-NEXT: "presumedLine": 200006, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "vla", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "double[n]" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } +// RUN: %clang_cc1 -std=gnu11 -triple x86_64-unknown-unknown -ast-dump=json %s | FileCheck %s + +int TestLocation = 0; +int TestIndent = 1 + (1); + +void TestDeclStmt(void) { + int x = 0; + int y, z; +} + +int TestOpaqueValueExpr = 0 ?: 1; + +void TestUnaryOperatorExpr(void) { + char T1 = 1; + int T2 = 1; + + T1++; + T2++; + + -T1; + -T2; + + ~T1; + ~T2; +} + +void TestGenericSelectionExpressions(int i) { + _Generic(i, int : 12); + _Generic(i, int : 12, default : 0); + _Generic(i, default : 0, int : 12); + _Generic(i, int : 12, float : 10, default : 100); + + int j = _Generic(i, int : 12); +} + +void TestLabelsAndGoto(void) { + // Note: case and default labels are handled by TestSwitch(). + +label1: + ; + + goto label2; + +label2: + 0; + + void *ptr = &&label1; + + goto *ptr; +} + +void TestSwitch(int i) { + switch (i) { + case 0: + break; + case 1: + case 2: + break; + default: + break; + case 3 ... 5: + break; + } +} + +void TestIf(_Bool b) { + if (b) + ; + + if (b) {} + + if (b) + ; + else + ; + + if (b) {} + else {} + + if (b) + ; + else if (b) + ; + + if (b) + ; + else if (b) + ; + else + ; +} + +void TestIteration(_Bool b) { + while (b) + ; + + do + ; + while (b); + + for (int i = 0; i < 10; ++i) + ; + + for (b; b; b) + ; + + for (; b; b = !b) + ; + + for (; b;) + ; + + for (;; b = !b) + ; + + for (;;) + ; +} + +void TestJumps(void) { + // goto and computed goto was tested in TestLabelsAndGoto(). + + while (1) { + continue; + break; + } + return; + + return TestSwitch(1); +} + +void TestMiscStmts(void) { + ({int a = 10; a;}); +} + +void TestLineNumbers(void) { + int a; + +#define FOO(x) x + +#line 100000 + int b; + +#line 200000 + FOO(1); + +#undef FOO +} + +void TestVLA(int n) { + double vla[n]; +} + +// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py +// using --filters=VarDecl,CompoundStmt + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 101, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 3, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 12 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 97, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 116, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestLocation", +// CHECK-NEXT: "mangledName": "TestLocation", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 116, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 116, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 124, +// CHECK-NEXT: "line": 4, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 120, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 143, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestIndent", +// CHECK-NEXT: "mangledName": "TestIndent", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 137, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 143, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "+", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 137, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 137, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParenExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 141, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 143, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 142, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 142, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 173, +// CHECK-NEXT: "line": 6, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 203, +// CHECK-NEXT: "line": 9, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 178, +// CHECK-NEXT: "line": 7, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 187, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 182, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 178, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 186, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 186, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 186, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 192, +// CHECK-NEXT: "line": 8, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 200, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 196, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 192, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 196, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "y", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 199, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 192, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 199, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "z", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 212, +// CHECK-NEXT: "line": 11, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 208, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 239, +// CHECK-NEXT: "col": 32, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestOpaqueValueExpr", +// CHECK-NEXT: "mangledName": "TestOpaqueValueExpr", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryConditionalOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 234, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 239, +// CHECK-NEXT: "col": 32, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 234, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 234, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 234, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 234, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 234, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 234, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "OpaqueValueExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 234, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 234, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 234, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 234, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 239, +// CHECK-NEXT: "col": 32, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 239, +// CHECK-NEXT: "col": 32, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 278, +// CHECK-NEXT: "line": 13, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 368, +// CHECK-NEXT: "line": 25, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 283, +// CHECK-NEXT: "line": 14, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 294, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 288, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 283, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 293, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "T1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 293, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 293, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralCast", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 293, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 293, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 299, +// CHECK-NEXT: "line": 15, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 309, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 303, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 299, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 308, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "T2", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 308, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 308, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 316, +// CHECK-NEXT: "line": 17, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 318, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isPostfix": true, +// CHECK-NEXT: "opcode": "++", +// CHECK-NEXT: "canOverflow": false, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 316, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 316, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "T1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 325, +// CHECK-NEXT: "line": 18, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 327, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isPostfix": true, +// CHECK-NEXT: "opcode": "++", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 325, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 325, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "T2", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 336, +// CHECK-NEXT: "line": 20, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 337, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "-", +// CHECK-NEXT: "canOverflow": false, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 337, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 337, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralCast", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 337, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 337, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 337, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 337, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "T1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 344, +// CHECK-NEXT: "line": 21, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 345, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "-", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 345, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 345, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 345, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 345, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "T2", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 354, +// CHECK-NEXT: "line": 23, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 355, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "~", +// CHECK-NEXT: "canOverflow": false, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 355, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 355, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralCast", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 355, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 355, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 355, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 355, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "T1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "char" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 362, +// CHECK-NEXT: "line": 24, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 363, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "~", +// CHECK-NEXT: "canOverflow": false, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 363, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 363, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 363, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 363, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "T2", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 417, +// CHECK-NEXT: "col": 45, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 613, +// CHECK-NEXT: "line": 34, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "GenericSelectionExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 422, +// CHECK-NEXT: "line": 28, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 442, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 431, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 431, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 431, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 431, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "nonOdrUseReason": "unevaluated", +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "associationKind": "case", +// CHECK-NEXT: "selected": true, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 440, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 440, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "GenericSelectionExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 448, +// CHECK-NEXT: "line": 29, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 481, +// CHECK-NEXT: "col": 36, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 457, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 457, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 457, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 457, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "nonOdrUseReason": "unevaluated", +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "associationKind": "case", +// CHECK-NEXT: "selected": true, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 466, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 466, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "associationKind": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 480, +// CHECK-NEXT: "col": 35, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 480, +// CHECK-NEXT: "col": 35, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "GenericSelectionExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 487, +// CHECK-NEXT: "line": 30, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 520, +// CHECK-NEXT: "col": 36, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 496, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 496, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 496, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 496, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "nonOdrUseReason": "unevaluated", +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "associationKind": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 509, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 509, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "associationKind": "case", +// CHECK-NEXT: "selected": true, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 518, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 518, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "GenericSelectionExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 526, +// CHECK-NEXT: "line": 31, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 573, +// CHECK-NEXT: "col": 50, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 535, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 535, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 535, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 535, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "nonOdrUseReason": "unevaluated", +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "associationKind": "case", +// CHECK-NEXT: "selected": true, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 544, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 544, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "associationKind": "case", +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "float" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "fpp" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 556, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 556, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "10" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "associationKind": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 570, +// CHECK-NEXT: "col": 47, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 570, +// CHECK-NEXT: "col": 47, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "100" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 581, +// CHECK-NEXT: "line": 33, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 610, +// CHECK-NEXT: "col": 32, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 585, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 581, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 609, +// CHECK-NEXT: "col": 31, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "j", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "GenericSelectionExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 589, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 609, +// CHECK-NEXT: "col": 31, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 598, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 598, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 598, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 598, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "nonOdrUseReason": "unevaluated", +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "associationKind": "case", +// CHECK-NEXT: "selected": true, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 607, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 607, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 647, +// CHECK-NEXT: "line": 36, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 809, +// CHECK-NEXT: "line": 50, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LabelStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 717, +// CHECK-NEXT: "line": 39, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 728, +// CHECK-NEXT: "line": 40, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "label1", +// CHECK-NEXT: "declId": "0x{{.*}}", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 728, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 728, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "GotoStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 735, +// CHECK-NEXT: "line": 42, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 740, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "targetLabelDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LabelStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 751, +// CHECK-NEXT: "line": 44, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 762, +// CHECK-NEXT: "line": 45, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "label2", +// CHECK-NEXT: "declId": "0x{{.*}}", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 762, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 762, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 770, +// CHECK-NEXT: "line": 47, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 790, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 776, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 770, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 784, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "ptr", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "AddrLabelExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 782, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 784, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "name": "label1", +// CHECK-NEXT: "labelDeclId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "void" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IndirectGotoStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 797, +// CHECK-NEXT: "line": 49, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 803, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 803, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 803, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "NoOp", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 803, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 803, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 803, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 803, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "ptr", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "void" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 837, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 971, +// CHECK-NEXT: "line": 64, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "SwitchStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 842, +// CHECK-NEXT: "line": 53, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 968, +// CHECK-NEXT: "line": 63, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 850, +// CHECK-NEXT: "line": 53, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 850, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 850, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 850, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 853, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 968, +// CHECK-NEXT: "line": 63, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CaseStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 858, +// CHECK-NEXT: "line": 54, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 871, +// CHECK-NEXT: "line": 55, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ConstantExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 863, +// CHECK-NEXT: "line": 54, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 863, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 863, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 863, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BreakStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 871, +// CHECK-NEXT: "line": 55, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 871, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CaseStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 881, +// CHECK-NEXT: "line": 56, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 905, +// CHECK-NEXT: "line": 58, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ConstantExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 886, +// CHECK-NEXT: "line": 56, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 886, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 886, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 886, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CaseStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 892, +// CHECK-NEXT: "line": 57, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 905, +// CHECK-NEXT: "line": 58, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ConstantExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 897, +// CHECK-NEXT: "line": 57, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 897, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 897, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 897, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "2" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BreakStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 905, +// CHECK-NEXT: "line": 58, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 905, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DefaultStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 915, +// CHECK-NEXT: "line": 59, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 7 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 929, +// CHECK-NEXT: "line": 60, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BreakStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 929, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 929, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CaseStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 939, +// CHECK-NEXT: "line": 61, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 958, +// CHECK-NEXT: "line": 62, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isGNURange": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ConstantExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 944, +// CHECK-NEXT: "line": 61, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 944, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 944, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 944, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "3" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ConstantExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 950, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 950, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 950, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 950, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "5" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BreakStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 958, +// CHECK-NEXT: "line": 62, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 958, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 997, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1189, +// CHECK-NEXT: "line": 91, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IfStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1002, +// CHECK-NEXT: "line": 67, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1014, +// CHECK-NEXT: "line": 68, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1006, +// CHECK-NEXT: "line": 67, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1006, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1006, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1006, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1014, +// CHECK-NEXT: "line": 68, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1014, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IfStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1021, +// CHECK-NEXT: "line": 70, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1029, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1025, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1025, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1025, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1025, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1028, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1029, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IfStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1036, +// CHECK-NEXT: "line": 72, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1063, +// CHECK-NEXT: "line": 75, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "hasElse": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1040, +// CHECK-NEXT: "line": 72, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1040, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1040, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1040, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1048, +// CHECK-NEXT: "line": 73, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1048, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1063, +// CHECK-NEXT: "line": 75, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1063, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IfStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1070, +// CHECK-NEXT: "line": 77, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1089, +// CHECK-NEXT: "line": 78, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "hasElse": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1074, +// CHECK-NEXT: "line": 77, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1074, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1074, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1074, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1077, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1078, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1088, +// CHECK-NEXT: "line": 78, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1089, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IfStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1096, +// CHECK-NEXT: "line": 80, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1130, +// CHECK-NEXT: "line": 83, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "hasElse": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1100, +// CHECK-NEXT: "line": 80, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1100, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1100, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1100, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1108, +// CHECK-NEXT: "line": 81, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1108, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IfStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1118, +// CHECK-NEXT: "line": 82, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1130, +// CHECK-NEXT: "line": 83, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1122, +// CHECK-NEXT: "line": 82, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1122, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1122, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1122, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1130, +// CHECK-NEXT: "line": 83, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1130, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IfStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1137, +// CHECK-NEXT: "line": 85, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1186, +// CHECK-NEXT: "line": 90, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "hasElse": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1141, +// CHECK-NEXT: "line": 85, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1141, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1141, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1141, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1149, +// CHECK-NEXT: "line": 86, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1149, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IfStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1159, +// CHECK-NEXT: "line": 87, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1186, +// CHECK-NEXT: "line": 90, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "hasElse": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1163, +// CHECK-NEXT: "line": 87, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1163, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1163, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1163, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1171, +// CHECK-NEXT: "line": 88, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1171, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1186, +// CHECK-NEXT: "line": 90, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1186, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1222, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1443, +// CHECK-NEXT: "line": 118, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "WhileStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1227, +// CHECK-NEXT: "line": 94, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1242, +// CHECK-NEXT: "line": 95, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1234, +// CHECK-NEXT: "line": 94, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1234, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1234, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1234, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1242, +// CHECK-NEXT: "line": 95, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1242, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DoStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1249, +// CHECK-NEXT: "line": 97, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1270, +// CHECK-NEXT: "line": 99, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1257, +// CHECK-NEXT: "line": 98, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1257, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1269, +// CHECK-NEXT: "line": 99, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1269, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1269, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1269, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ForStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1278, +// CHECK-NEXT: "line": 101, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1312, +// CHECK-NEXT: "line": 102, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1283, +// CHECK-NEXT: "line": 101, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1292, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1287, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1283, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1291, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1291, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1291, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: {}, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1294, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1298, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "<", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1294, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1294, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1294, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1294, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1298, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1298, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "10" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1302, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1304, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "++", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1304, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1304, +// CHECK-NEXT: "col": 29, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1312, +// CHECK-NEXT: "line": 102, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1312, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ForStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1319, +// CHECK-NEXT: "line": 104, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1338, +// CHECK-NEXT: "line": 105, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1324, +// CHECK-NEXT: "line": 104, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1324, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1324, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1324, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: {}, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1327, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1327, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1327, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1327, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1330, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1330, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1330, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1330, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1338, +// CHECK-NEXT: "line": 105, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1338, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ForStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1345, +// CHECK-NEXT: "line": 107, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1368, +// CHECK-NEXT: "line": 108, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: {}, +// CHECK-NEXT: {}, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1352, +// CHECK-NEXT: "line": 107, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1352, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1352, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1352, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1355, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1360, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "=", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1355, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1355, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1359, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1360, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralToBoolean", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1359, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1360, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "!", +// CHECK-NEXT: "canOverflow": false, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1360, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1360, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1360, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1360, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1368, +// CHECK-NEXT: "line": 108, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1368, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ForStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1375, +// CHECK-NEXT: "line": 110, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1391, +// CHECK-NEXT: "line": 111, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: {}, +// CHECK-NEXT: {}, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1382, +// CHECK-NEXT: "line": 110, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1382, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1382, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1382, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: {}, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1391, +// CHECK-NEXT: "line": 111, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1391, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ForStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1398, +// CHECK-NEXT: "line": 113, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1419, +// CHECK-NEXT: "line": 114, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: {}, +// CHECK-NEXT: {}, +// CHECK-NEXT: {}, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1406, +// CHECK-NEXT: "line": 113, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1411, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "=", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1406, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1406, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1410, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1411, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralToBoolean", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1410, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1411, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "!", +// CHECK-NEXT: "canOverflow": false, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1411, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1411, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1411, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1411, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "_Bool" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1419, +// CHECK-NEXT: "line": 114, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1419, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ForStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1426, +// CHECK-NEXT: "line": 116, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1440, +// CHECK-NEXT: "line": 117, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: {}, +// CHECK-NEXT: {}, +// CHECK-NEXT: {}, +// CHECK-NEXT: {}, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1440, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1440, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1469, +// CHECK-NEXT: "line": 120, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1623, +// CHECK-NEXT: "line": 130, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "WhileStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1540, +// CHECK-NEXT: "line": 123, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1582, +// CHECK-NEXT: "line": 126, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1547, +// CHECK-NEXT: "line": 123, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1547, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1550, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1582, +// CHECK-NEXT: "line": 126, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ContinueStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1557, +// CHECK-NEXT: "line": 124, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1557, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BreakStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1572, +// CHECK-NEXT: "line": 125, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1572, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ReturnStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1587, +// CHECK-NEXT: "line": 127, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1587, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ReturnStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1600, +// CHECK-NEXT: "line": 129, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1619, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1607, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1619, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1607, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1607, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (*)(int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "FunctionToPointerDecay", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1607, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1607, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "TestSwitch", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int)" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1618, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1618, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1653, +// CHECK-NEXT: "line": 132, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1679, +// CHECK-NEXT: "line": 134, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "StmtExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1658, +// CHECK-NEXT: "line": 133, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1675, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1659, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1674, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1660, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1670, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1664, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1660, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1668, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1668, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1668, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "10" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1672, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1672, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1672, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1672, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1711, +// CHECK-NEXT: "line": 136, +// CHECK-NEXT: "col": 28, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1811, +// CHECK-NEXT: "line": 148, +// CHECK-NEXT: "presumedLine": 200003, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1716, +// CHECK-NEXT: "line": 137, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1721, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1720, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1716, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1720, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1762, +// CHECK-NEXT: "line": 142, +// CHECK-NEXT: "presumedLine": 100000, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1767, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1766, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1762, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1766, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "spellingLoc": { +// CHECK-NEXT: "offset": 1792, +// CHECK-NEXT: "line": 145, +// CHECK-NEXT: "presumedLine": 200000, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "expansionLoc": { +// CHECK-NEXT: "offset": 1788, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3, +// CHECK-NEXT: "isMacroArgExpansion": true +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "spellingLoc": { +// CHECK-NEXT: "offset": 1792, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "expansionLoc": { +// CHECK-NEXT: "offset": 1788, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3, +// CHECK-NEXT: "isMacroArgExpansion": true +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1836, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1857, +// CHECK-NEXT: "line": 152, +// CHECK-NEXT: "presumedLine": 200007, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1841, +// CHECK-NEXT: "line": 151, +// CHECK-NEXT: "presumedLine": 200006, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1854, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1848, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1841, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1853, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "vla", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "double[n]" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VariableArrayType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "double[n]" +// CHECK-NEXT: }, +// CHECK-NEXT: "isVariablyModified": true, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "array" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "double" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "fpp" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1852, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1852, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1852, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1852, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "n", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } diff --git a/clang/test/AST/ast-dump-stmt-json.cpp b/clang/test/AST/ast-dump-stmt-json.cpp index a8f113ce6a3d4..546203fd0f2da 100644 --- a/clang/test/AST/ast-dump-stmt-json.cpp +++ b/clang/test/AST/ast-dump-stmt-json.cpp @@ -1,7229 +1,8929 @@ -// RUN: %clang_cc1 -std=c++2a -triple x86_64-linux-gnu -fcxx-exceptions -ast-dump=json %s | FileCheck %s - -namespace n { -void function() {} -int Variable; -} -using n::function; -using n::Variable; -void TestFunction() { - void (*f)() = &function; - Variable = 4; -} - -void TestCatch1() { - try { - } - catch (int x) { - } -} - -void TestCatch2() { - try { - } - catch (...) { - } -} - -void TestAllocationExprs() { - int *p; - p = new int; - delete p; - p = new int[2]; - delete[] p; - p = ::new int; - ::delete p; -} - -// Don't crash on dependent exprs that haven't been resolved yet. -template -void TestDependentAllocationExpr() { - T *p = new T; - delete p; -} - -template -class DependentScopeMemberExprWrapper { - T member; -}; - -template -void TestDependentScopeMemberExpr() { - DependentScopeMemberExprWrapper obj; - obj.member = T(); - obj.member = T{}; - (&obj)->member = T(); -} - -template -class OtherDependentScopeMemberExprWrapper { - template - static U member; -}; - -template -void TestDependentScopeTemplateMemberExpr() { - OtherDependentScopeMemberExprWrapper obj; - obj.template member = int(); -} - -union U { - int i; - long l; -}; - -void TestUnionInitList() -{ - U us[3] = {1}; -} - -void TestSwitch(int i) { - switch (int a; i) - ; -} - -void TestIf(bool b) { - if (const int i = 12; i) - ; - - if constexpr (sizeof(b) == 1) - ; - - if constexpr (sizeof(b) == 1) - ; - else - ; -} - -struct Container { - int *begin() const; - int *end() const; -}; - -void TestIteration() { - for (int i = 0; int j = i; ++i) - ; - - int vals[10]; - for (int v : vals) - ; - - Container C; - for (int v : C) - ; - - for (int a; int v : vals) - ; -} - -template -void TestDependentGenericSelectionExpr(Ty T) { - _Generic(T, int : 1, default : 0); - _Generic(T, default : 0); -} - -// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py -// using --filters=FunctionDecl,FunctionTemplateDecl,UsingDecl,UsingShadowDecl - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 125, -// CHECK-NEXT: "line": 4, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 120, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 137, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "function", -// CHECK-NEXT: "mangledName": "_ZN1n8functionEv", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 136, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 137, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "UsingDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 164, -// CHECK-NEXT: "line": 7, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 155, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 164, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "n::function" -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "UsingShadowDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 164, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 164, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 164, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "target": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "function", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "UsingDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 183, -// CHECK-NEXT: "line": 8, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 174, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 183, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "n::Variable" -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "UsingShadowDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 183, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 183, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 183, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "target": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "Variable", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 198, -// CHECK-NEXT: "line": 9, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 12 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 193, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 258, -// CHECK-NEXT: "line": 12, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestFunction", -// CHECK-NEXT: "mangledName": "_Z12TestFunctionv", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 213, -// CHECK-NEXT: "line": 9, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 258, -// CHECK-NEXT: "line": 12, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 217, -// CHECK-NEXT: "line": 10, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 240, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 224, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 217, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 232, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "f", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (*)()" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 231, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 232, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (*)()" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "&", -// CHECK-NEXT: "canOverflow": false, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 232, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 232, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "function", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "foundReferencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UsingShadowDecl", -// CHECK-NEXT: "name": "function" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 244, -// CHECK-NEXT: "line": 11, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 255, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "opcode": "=", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 244, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 244, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "Variable", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "foundReferencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UsingShadowDecl", -// CHECK-NEXT: "name": "Variable" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 255, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 255, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "4" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 266, -// CHECK-NEXT: "line": 14, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 261, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 315, -// CHECK-NEXT: "line": 19, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestCatch1", -// CHECK-NEXT: "mangledName": "_Z10TestCatch1v", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 279, -// CHECK-NEXT: "line": 14, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 315, -// CHECK-NEXT: "line": 19, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXTryStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 283, -// CHECK-NEXT: "line": 15, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 313, -// CHECK-NEXT: "line": 18, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 287, -// CHECK-NEXT: "line": 15, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 291, -// CHECK-NEXT: "line": 16, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXCatchStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 295, -// CHECK-NEXT: "line": 17, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 313, -// CHECK-NEXT: "line": 18, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 306, -// CHECK-NEXT: "line": 17, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 302, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 306, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 309, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 313, -// CHECK-NEXT: "line": 18, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 323, -// CHECK-NEXT: "line": 21, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 318, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 370, -// CHECK-NEXT: "line": 26, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestCatch2", -// CHECK-NEXT: "mangledName": "_Z10TestCatch2v", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 336, -// CHECK-NEXT: "line": 21, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 370, -// CHECK-NEXT: "line": 26, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXTryStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 340, -// CHECK-NEXT: "line": 22, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 368, -// CHECK-NEXT: "line": 25, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 344, -// CHECK-NEXT: "line": 22, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 348, -// CHECK-NEXT: "line": 23, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXCatchStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 352, -// CHECK-NEXT: "line": 24, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 368, -// CHECK-NEXT: "line": 25, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x0" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 364, -// CHECK-NEXT: "line": 24, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 368, -// CHECK-NEXT: "line": 25, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 378, -// CHECK-NEXT: "line": 28, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 373, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 502, -// CHECK-NEXT: "line": 36, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestAllocationExprs", -// CHECK-NEXT: "mangledName": "_Z19TestAllocationExprsv", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 400, -// CHECK-NEXT: "line": 28, -// CHECK-NEXT: "col": 28, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 502, -// CHECK-NEXT: "line": 36, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 404, -// CHECK-NEXT: "line": 29, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 410, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 409, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 404, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 409, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "p", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 414, -// CHECK-NEXT: "line": 30, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 422, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "opcode": "=", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 414, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 414, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "p", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXNewExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 418, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 422, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "operatorNewDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "operator new", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *(__size_t)" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDeleteExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 429, -// CHECK-NEXT: "line": 31, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 436, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "operatorDeleteDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "operator delete", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (void *, __size_t) noexcept" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 436, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 436, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 436, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 436, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "p", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 441, -// CHECK-NEXT: "line": 32, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 454, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "opcode": "=", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 441, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 441, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "p", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXNewExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 445, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 454, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isArray": true, -// CHECK-NEXT: "operatorNewDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "operator new[]", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *(__size_t)" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 453, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 453, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "unsigned long", -// CHECK-NEXT: "qualType": "__size_t" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralCast", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 453, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 453, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "2" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDeleteExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 459, -// CHECK-NEXT: "line": 33, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 468, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isArray": true, -// CHECK-NEXT: "isArrayAsWritten": true, -// CHECK-NEXT: "operatorDeleteDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "operator delete[]", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (void *) noexcept" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 468, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 468, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 468, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 468, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "p", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 473, -// CHECK-NEXT: "line": 34, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 483, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "opcode": "=", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 473, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 473, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "p", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXNewExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 477, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 483, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isGlobal": true, -// CHECK-NEXT: "operatorNewDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "operator new", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *(__size_t)" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDeleteExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 490, -// CHECK-NEXT: "line": 35, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 499, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isGlobal": true, -// CHECK-NEXT: "operatorDeleteDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "name": "operator delete", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (void *, __size_t) noexcept" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 499, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 499, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 499, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 499, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "p", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "operator new", -// CHECK-NEXT: "mangledName": "_Znwm", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *(__size_t)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "unsigned long", -// CHECK-NEXT: "qualType": "__size_t" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VisibilityAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "implicit": true, -// CHECK-NEXT: "visibility": "default" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ReturnsNonNullAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "implicit": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "AllocSizeAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "implicit": true -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator new", -// CHECK-NEXT: "mangledName": "_ZnwmSt11align_val_t", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *(__size_t, std::align_val_t)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "unsigned long", -// CHECK-NEXT: "qualType": "__size_t" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "std::align_val_t" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VisibilityAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "implicit": true, -// CHECK-NEXT: "visibility": "default" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ReturnsNonNullAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "implicit": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "AllocSizeAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "implicit": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "AllocAlignAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "implicit": true -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "operator new[]", -// CHECK-NEXT: "mangledName": "_Znam", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *(__size_t)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "unsigned long", -// CHECK-NEXT: "qualType": "__size_t" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VisibilityAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "implicit": true, -// CHECK-NEXT: "visibility": "default" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ReturnsNonNullAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "implicit": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "AllocSizeAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "implicit": true -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator new[]", -// CHECK-NEXT: "mangledName": "_ZnamSt11align_val_t", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *(__size_t, std::align_val_t)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "unsigned long", -// CHECK-NEXT: "qualType": "__size_t" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "std::align_val_t" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VisibilityAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "implicit": true, -// CHECK-NEXT: "visibility": "default" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ReturnsNonNullAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "implicit": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "AllocSizeAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "implicit": true -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "AllocAlignAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "implicit": true -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator delete", -// CHECK-NEXT: "mangledName": "_ZdlPv", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (void *) noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VisibilityAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "implicit": true, -// CHECK-NEXT: "visibility": "default" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator delete", -// CHECK-NEXT: "mangledName": "_ZdlPvSt11align_val_t", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (void *, std::align_val_t) noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "std::align_val_t" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VisibilityAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "implicit": true, -// CHECK-NEXT: "visibility": "default" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "operator delete", -// CHECK-NEXT: "mangledName": "_ZdlPvm", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (void *, __size_t) noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "unsigned long", -// CHECK-NEXT: "qualType": "__size_t" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VisibilityAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "implicit": true, -// CHECK-NEXT: "visibility": "default" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator delete", -// CHECK-NEXT: "mangledName": "_ZdlPvmSt11align_val_t", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (void *, __size_t, std::align_val_t) noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "unsigned long", -// CHECK-NEXT: "qualType": "__size_t" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "std::align_val_t" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VisibilityAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "implicit": true, -// CHECK-NEXT: "visibility": "default" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "operator delete[]", -// CHECK-NEXT: "mangledName": "_ZdaPv", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (void *) noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VisibilityAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "implicit": true, -// CHECK-NEXT: "visibility": "default" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator delete[]", -// CHECK-NEXT: "mangledName": "_ZdaPvSt11align_val_t", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (void *, std::align_val_t) noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "std::align_val_t" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VisibilityAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "implicit": true, -// CHECK-NEXT: "visibility": "default" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator delete[]", -// CHECK-NEXT: "mangledName": "_ZdaPvm", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (void *, __size_t) noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "unsigned long", -// CHECK-NEXT: "qualType": "__size_t" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VisibilityAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "implicit": true, -// CHECK-NEXT: "visibility": "default" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "operator delete[]", -// CHECK-NEXT: "mangledName": "_ZdaPvmSt11align_val_t", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (void *, __size_t, std::align_val_t) noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "unsigned long", -// CHECK-NEXT: "qualType": "__size_t" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "std::align_val_t" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VisibilityAttr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "implicit": true, -// CHECK-NEXT: "visibility": "default" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionTemplateDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 598, -// CHECK-NEXT: "line": 40, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 27 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 571, -// CHECK-NEXT: "line": 39, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 658, -// CHECK-NEXT: "line": 43, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestDependentAllocationExpr", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TemplateTypeParmDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 590, -// CHECK-NEXT: "line": 39, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 581, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 590, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "T", -// CHECK-NEXT: "tagUsed": "typename", -// CHECK-NEXT: "depth": 0, -// CHECK-NEXT: "index": 0 -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 598, -// CHECK-NEXT: "line": 40, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 27 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 593, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 658, -// CHECK-NEXT: "line": 43, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestDependentAllocationExpr", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 628, -// CHECK-NEXT: "line": 40, -// CHECK-NEXT: "col": 36, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 658, -// CHECK-NEXT: "line": 43, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 632, -// CHECK-NEXT: "line": 41, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 644, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 635, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 632, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 643, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "p", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "T *" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXNewExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 639, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 643, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "T *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDeleteExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 648, -// CHECK-NEXT: "line": 42, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 655, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 655, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 655, -// CHECK-NEXT: "col": 10, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "T *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "p", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "T *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionTemplateDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 766, -// CHECK-NEXT: "line": 51, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 28 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 739, -// CHECK-NEXT: "line": 50, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 905, -// CHECK-NEXT: "line": 56, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestDependentScopeMemberExpr", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TemplateTypeParmDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 758, -// CHECK-NEXT: "line": 50, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 749, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 758, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "T", -// CHECK-NEXT: "tagUsed": "typename", -// CHECK-NEXT: "depth": 0, -// CHECK-NEXT: "index": 0 -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 766, -// CHECK-NEXT: "line": 51, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 28 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 761, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 905, -// CHECK-NEXT: "line": 56, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestDependentScopeMemberExpr", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 797, -// CHECK-NEXT: "line": 51, -// CHECK-NEXT: "col": 37, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 905, -// CHECK-NEXT: "line": 56, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 801, -// CHECK-NEXT: "line": 52, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 31 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 839, -// CHECK-NEXT: "col": 41, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 836, -// CHECK-NEXT: "col": 38, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 801, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 31 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 836, -// CHECK-NEXT: "col": 38, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "obj", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "DependentScopeMemberExprWrapper" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 843, -// CHECK-NEXT: "line": 53, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 858, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "=", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDependentScopeMemberExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 843, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 847, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "isArrow": false, -// CHECK-NEXT: "member": "member", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 843, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 843, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "DependentScopeMemberExprWrapper" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "obj", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "DependentScopeMemberExprWrapper" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXUnresolvedConstructExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 856, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 858, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "T" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 863, -// CHECK-NEXT: "line": 54, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 878, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "=", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDependentScopeMemberExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 863, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 867, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "isArrow": false, -// CHECK-NEXT: "member": "member", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 863, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 863, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "DependentScopeMemberExprWrapper" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "obj", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "DependentScopeMemberExprWrapper" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXUnresolvedConstructExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 876, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 878, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "T" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "list": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "InitListExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 877, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 878, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 883, -// CHECK-NEXT: "line": 55, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 902, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "=", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDependentScopeMemberExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 883, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 891, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "isArrow": true, -// CHECK-NEXT: "member": "member", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParenExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 883, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 888, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 884, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 885, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "&", -// CHECK-NEXT: "canOverflow": false, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 885, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 885, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "DependentScopeMemberExprWrapper" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "obj", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "DependentScopeMemberExprWrapper" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXUnresolvedConstructExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 900, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 902, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "T" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionTemplateDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1049, -// CHECK-NEXT: "line": 65, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 36 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1022, -// CHECK-NEXT: "line": 64, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1173, -// CHECK-NEXT: "line": 68, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestDependentScopeTemplateMemberExpr", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TemplateTypeParmDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1041, -// CHECK-NEXT: "line": 64, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1032, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1041, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "T", -// CHECK-NEXT: "tagUsed": "typename", -// CHECK-NEXT: "depth": 0, -// CHECK-NEXT: "index": 0 -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1049, -// CHECK-NEXT: "line": 65, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 36 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1044, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1173, -// CHECK-NEXT: "line": 68, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestDependentScopeTemplateMemberExpr", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1088, -// CHECK-NEXT: "line": 65, -// CHECK-NEXT: "col": 45, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1173, -// CHECK-NEXT: "line": 68, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1092, -// CHECK-NEXT: "line": 66, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 36 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1135, -// CHECK-NEXT: "col": 46, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1132, -// CHECK-NEXT: "col": 43, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1092, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 36 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1132, -// CHECK-NEXT: "col": 43, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "obj", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "OtherDependentScopeMemberExprWrapper" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1139, -// CHECK-NEXT: "line": 67, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1170, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "=", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXDependentScopeMemberExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1139, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1162, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "isArrow": false, -// CHECK-NEXT: "member": "member", -// CHECK-NEXT: "hasTemplateKeyword": true, -// CHECK-NEXT: "hasExplicitTemplateArgs": true, -// CHECK-NEXT: "explicitTemplateArgs": [ -// CHECK-NEXT: { -// CHECK-NEXT: "kind": "TemplateArgument", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1159, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1159, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ], -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1139, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1139, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "OtherDependentScopeMemberExprWrapper" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "obj", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "OtherDependentScopeMemberExprWrapper" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXScalarValueInitExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1166, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1170, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1214, -// CHECK-NEXT: "line": 75, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 17 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1209, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1253, -// CHECK-NEXT: "line": 78, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestUnionInitList", -// CHECK-NEXT: "mangledName": "_Z17TestUnionInitListv", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1234, -// CHECK-NEXT: "line": 76, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1253, -// CHECK-NEXT: "line": 78, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1238, -// CHECK-NEXT: "line": 77, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1251, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1240, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1238, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1250, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "us", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "U[3]" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "InitListExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1248, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1250, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "U[3]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "array_filler": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "InitListExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1250, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1250, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "U" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "field": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "InitListExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1249, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1249, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "U" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "field": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FieldDecl", -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1249, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1249, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1261, -// CHECK-NEXT: "line": 80, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 10 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1256, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1307, -// CHECK-NEXT: "line": 83, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestSwitch", -// CHECK-NEXT: "mangledName": "_Z10TestSwitchi", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (int)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1276, -// CHECK-NEXT: "line": 80, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1272, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1276, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1279, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1307, -// CHECK-NEXT: "line": 83, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "SwitchStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1283, -// CHECK-NEXT: "line": 81, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1305, -// CHECK-NEXT: "line": 82, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "hasInit": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1291, -// CHECK-NEXT: "line": 81, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1296, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1295, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1291, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1295, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1298, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1298, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1298, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1298, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1305, -// CHECK-NEXT: "line": 82, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1305, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1315, -// CHECK-NEXT: "line": 85, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1310, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1456, -// CHECK-NEXT: "line": 96, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestIf", -// CHECK-NEXT: "mangledName": "_Z6TestIfb", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (bool)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1327, -// CHECK-NEXT: "line": 85, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1322, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1327, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1330, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1456, -// CHECK-NEXT: "line": 96, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IfStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1334, -// CHECK-NEXT: "line": 86, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1363, -// CHECK-NEXT: "line": 87, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "hasInit": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1338, -// CHECK-NEXT: "line": 86, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1354, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1348, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1338, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 5 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1352, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1352, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1352, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "12" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1356, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1356, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralToBoolean", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1356, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1356, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1356, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1356, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "nonOdrUseReason": "constant" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1363, -// CHECK-NEXT: "line": 87, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1363, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IfStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1368, -// CHECK-NEXT: "line": 89, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1402, -// CHECK-NEXT: "line": 90, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ConstantExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1382, -// CHECK-NEXT: "line": 89, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1395, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "true", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1382, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1395, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "==", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryExprOrTypeTraitExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1382, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1390, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "unsigned long", -// CHECK-NEXT: "qualType": "__size_t" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "name": "sizeof", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParenExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1388, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1390, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1389, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1389, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "nonOdrUseReason": "unevaluated" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1395, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1395, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "unsigned long", -// CHECK-NEXT: "qualType": "__size_t" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralCast", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1395, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1395, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1402, -// CHECK-NEXT: "line": 90, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1402, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IfStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1407, -// CHECK-NEXT: "line": 92, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1454, -// CHECK-NEXT: "line": 95, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "hasElse": true, -// CHECK-NEXT: "isConstexpr": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ConstantExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1421, -// CHECK-NEXT: "line": 92, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1434, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "true", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1421, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1434, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "==", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryExprOrTypeTraitExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1421, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 6 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1429, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "unsigned long", -// CHECK-NEXT: "qualType": "__size_t" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "name": "sizeof", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParenExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1427, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1429, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1428, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1428, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "b", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "nonOdrUseReason": "unevaluated" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1434, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1434, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "unsigned long", -// CHECK-NEXT: "qualType": "__size_t" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralCast", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1434, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1434, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1441, -// CHECK-NEXT: "line": 93, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1441, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1454, -// CHECK-NEXT: "line": 95, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1454, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1529, -// CHECK-NEXT: "line": 103, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1524, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1706, -// CHECK-NEXT: "line": 117, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestIteration", -// CHECK-NEXT: "mangledName": "_Z13TestIterationv", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void ()" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1545, -// CHECK-NEXT: "line": 103, -// CHECK-NEXT: "col": 22, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1706, -// CHECK-NEXT: "line": 117, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ForStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1549, -// CHECK-NEXT: "line": 104, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1585, -// CHECK-NEXT: "line": 105, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1554, -// CHECK-NEXT: "line": 104, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1563, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1558, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1554, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1562, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1562, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1562, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1565, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1573, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1569, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1565, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1573, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "j", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1573, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1573, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1573, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1573, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1569, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1569, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "IntegralToBoolean", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1569, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1569, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1569, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1569, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "j", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1576, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1578, -// CHECK-NEXT: "col": 32, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "++", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1578, -// CHECK-NEXT: "col": 32, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1578, -// CHECK-NEXT: "col": 32, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "i", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1585, -// CHECK-NEXT: "line": 105, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1585, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1590, -// CHECK-NEXT: "line": 107, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1602, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1594, -// CHECK-NEXT: "col": 7, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1590, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1601, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "vals", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int[10]" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXForRangeStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1606, -// CHECK-NEXT: "line": 108, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1629, -// CHECK-NEXT: "line": 109, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: {}, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1619, -// CHECK-NEXT: "line": 108, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1619, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1619, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1619, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1619, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "__range1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int (&)[10]" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1619, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1619, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int[10]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "vals", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int[10]" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "__begin1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "ArrayToPointerDecay", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int[10]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__range1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int (&)[10]" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1619, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "__end1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1619, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "+", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "ArrayToPointerDecay", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int[10]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__range1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int (&)[10]" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1619, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1619, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "long", -// CHECK-NEXT: "qualType": "__ptrdiff_t" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "10" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "!=", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__begin1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__end1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "++", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__begin1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1611, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1623, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1615, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1611, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "v", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "*", -// CHECK-NEXT: "canOverflow": false, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1617, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__begin1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1629, -// CHECK-NEXT: "line": 109, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1629, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1634, -// CHECK-NEXT: "line": 111, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 9 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1645, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1644, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1634, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 9 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1644, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "C", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Container" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "call", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXConstructExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1644, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1644, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Container" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "ctorType": { -// CHECK-NEXT: "qualType": "void () noexcept" -// CHECK-NEXT: }, -// CHECK-NEXT: "hadMultipleCandidates": true, -// CHECK-NEXT: "constructionKind": "complete" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXForRangeStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1649, -// CHECK-NEXT: "line": 112, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1669, -// CHECK-NEXT: "line": 113, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: {}, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1662, -// CHECK-NEXT: "line": 112, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1662, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1662, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1662, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1662, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "__range1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Container &" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1662, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1662, -// CHECK-NEXT: "col": 16, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Container" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "C", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Container" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "__begin1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMemberCallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "MemberExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "name": "begin", -// CHECK-NEXT: "isArrow": false, -// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const Container" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "castKind": "NoOp", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Container" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__range1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Container &" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "__end1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXMemberCallExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "MemberExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "name": "end", -// CHECK-NEXT: "isArrow": false, -// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const Container" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "castKind": "NoOp", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Container" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__range1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Container &" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "!=", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__begin1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__end1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "++", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__begin1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1654, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1663, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1658, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1654, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "v", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "*", -// CHECK-NEXT: "canOverflow": false, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1660, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__begin1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1669, -// CHECK-NEXT: "line": 113, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1669, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CXXForRangeStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1674, -// CHECK-NEXT: "line": 115, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1704, -// CHECK-NEXT: "line": 116, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1679, -// CHECK-NEXT: "line": 115, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1684, -// CHECK-NEXT: "col": 13, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1683, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1679, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1683, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1694, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1694, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1694, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1694, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1694, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "__range1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int (&)[10]" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1694, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1694, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int[10]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "vals", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int[10]" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "__begin1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "ArrayToPointerDecay", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int[10]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__range1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int (&)[10]" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1694, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "__end1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1694, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "+", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "ArrayToPointerDecay", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int[10]" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__range1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int (&)[10]" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1694, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1694, -// CHECK-NEXT: "col": 23, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "desugaredQualType": "long" -// CHECK-NEXT: "qualType": "__ptrdiff_t" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "10" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BinaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "bool" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "opcode": "!=", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__begin1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__end1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "++", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__begin1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1686, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1698, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1690, -// CHECK-NEXT: "col": 19, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1686, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "v", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "init": "c", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "UnaryOperator", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "isPostfix": false, -// CHECK-NEXT: "opcode": "*", -// CHECK-NEXT: "canOverflow": false, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1692, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "name": "__begin1", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "NullStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1704, -// CHECK-NEXT: "line": 116, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1704, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionTemplateDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1737, -// CHECK-NEXT: "line": 120, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 33 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1709, -// CHECK-NEXT: "line": 119, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1844, -// CHECK-NEXT: "line": 123, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestDependentGenericSelectionExpr", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TemplateTypeParmDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1728, -// CHECK-NEXT: "line": 119, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1719, -// CHECK-NEXT: "col": 11, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1728, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "Ty", -// CHECK-NEXT: "tagUsed": "typename", -// CHECK-NEXT: "depth": 0, -// CHECK-NEXT: "index": 0 -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1737, -// CHECK-NEXT: "line": 120, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 33 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1732, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1844, -// CHECK-NEXT: "line": 123, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestDependentGenericSelectionExpr", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (Ty)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": 1774, -// CHECK-NEXT: "line": 120, -// CHECK-NEXT: "col": 43, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1771, -// CHECK-NEXT: "col": 40, -// CHECK-NEXT: "tokLen": 2 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1774, -// CHECK-NEXT: "col": 43, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isReferenced": true, -// CHECK-NEXT: "name": "T", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Ty" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1777, -// CHECK-NEXT: "col": 46, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1844, -// CHECK-NEXT: "line": 123, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "GenericSelectionExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1781, -// CHECK-NEXT: "line": 121, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1813, -// CHECK-NEXT: "col": 35, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "resultDependent": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1790, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1790, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Ty" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "T", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Ty" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "nonOdrUseReason": "unevaluated" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TemplateTypeParmType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Ty" -// CHECK-NEXT: }, -// CHECK-NEXT: "isDependent": true, -// CHECK-NEXT: "isInstantiationDependent": true, -// CHECK-NEXT: "depth": 0, -// CHECK-NEXT: "index": 0, -// CHECK-NEXT: "decl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TemplateTypeParmDecl", -// CHECK-NEXT: "name": "Ty" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "associationKind": "case", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BuiltinType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1799, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1799, -// CHECK-NEXT: "col": 21, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "1" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "associationKind": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1812, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1812, -// CHECK-NEXT: "col": 34, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "GenericSelectionExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1818, -// CHECK-NEXT: "line": 122, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 8 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1841, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "resultDependent": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1827, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1827, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Ty" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "T", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Ty" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "nonOdrUseReason": "unevaluated" -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TemplateTypeParmType", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "Ty" -// CHECK-NEXT: }, -// CHECK-NEXT: "isDependent": true, -// CHECK-NEXT: "isInstantiationDependent": true, -// CHECK-NEXT: "depth": 0, -// CHECK-NEXT: "index": 0, -// CHECK-NEXT: "decl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "TemplateTypeParmDecl", -// CHECK-NEXT: "name": "Ty" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "associationKind": "default", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "IntegerLiteral", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": 1840, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": 1840, -// CHECK-NEXT: "col": 25, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "value": "0" -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } +// RUN: %clang_cc1 -std=c++2a -triple x86_64-linux-gnu -fcxx-exceptions -ast-dump=json %s | FileCheck %s + +namespace n { +void function() {} +int Variable; +} +using n::function; +using n::Variable; +void TestFunction() { + void (*f)() = &function; + Variable = 4; +} + +void TestCatch1() { + try { + } + catch (int x) { + } +} + +void TestCatch2() { + try { + } + catch (...) { + } +} + +void TestAllocationExprs() { + int *p; + p = new int; + delete p; + p = new int[2]; + delete[] p; + p = ::new int; + ::delete p; +} + +// Don't crash on dependent exprs that haven't been resolved yet. +template +void TestDependentAllocationExpr() { + T *p = new T; + delete p; +} + +template +class DependentScopeMemberExprWrapper { + T member; +}; + +template +void TestDependentScopeMemberExpr() { + DependentScopeMemberExprWrapper obj; + obj.member = T(); + obj.member = T{}; + (&obj)->member = T(); +} + +template +class OtherDependentScopeMemberExprWrapper { + template + static U member; +}; + +template +void TestDependentScopeTemplateMemberExpr() { + OtherDependentScopeMemberExprWrapper obj; + obj.template member = int(); +} + +union U { + int i; + long l; +}; + +void TestUnionInitList() +{ + U us[3] = {1}; +} + +void TestSwitch(int i) { + switch (int a; i) + ; +} + +void TestIf(bool b) { + if (const int i = 12; i) + ; + + if constexpr (sizeof(b) == 1) + ; + + if constexpr (sizeof(b) == 1) + ; + else + ; +} + +struct Container { + int *begin() const; + int *end() const; +}; + +void TestIteration() { + for (int i = 0; int j = i; ++i) + ; + + int vals[10]; + for (int v : vals) + ; + + Container C; + for (int v : C) + ; + + for (int a; int v : vals) + ; +} + +template +void TestDependentGenericSelectionExpr(Ty T) { + _Generic(T, int : 1, default : 0); + _Generic(T, default : 0); +} + +// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py +// using --filters=FunctionDecl,FunctionTemplateDecl,UsingDecl,UsingShadowDecl + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 128, +// CHECK-NEXT: "line": 4, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 123, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 140, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "function", +// CHECK-NEXT: "mangledName": "_ZN1n8functionEv", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 139, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 140, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "UsingDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 170, +// CHECK-NEXT: "line": 7, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 161, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 170, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "n::function" +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "UsingShadowDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 170, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 170, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 170, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "target": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "function", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "UsingDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 190, +// CHECK-NEXT: "line": 8, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 181, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 190, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "n::Variable" +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "UsingShadowDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 190, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 190, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 190, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "target": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "Variable", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 206, +// CHECK-NEXT: "line": 9, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 12 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 201, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 269, +// CHECK-NEXT: "line": 12, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestFunction", +// CHECK-NEXT: "mangledName": "_Z12TestFunctionv", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 221, +// CHECK-NEXT: "line": 9, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 269, +// CHECK-NEXT: "line": 12, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 226, +// CHECK-NEXT: "line": 10, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 249, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 233, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 226, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 241, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "f", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (*)()" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 240, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 241, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (*)()" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "&", +// CHECK-NEXT: "canOverflow": false, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 241, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 241, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "function", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "foundReferencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UsingShadowDecl", +// CHECK-NEXT: "name": "function" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (*)()" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr", +// CHECK-NEXT: "func_ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParenType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "cc": "cdecl", +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "void" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "cc": "cdecl", +// CHECK-NEXT: "returnTypeDetail": { +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "void" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 254, +// CHECK-NEXT: "line": 11, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 265, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "opcode": "=", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 254, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 254, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "Variable", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "foundReferencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UsingShadowDecl", +// CHECK-NEXT: "name": "Variable" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 265, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 265, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "4" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 279, +// CHECK-NEXT: "line": 14, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 274, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 333, +// CHECK-NEXT: "line": 19, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestCatch1", +// CHECK-NEXT: "mangledName": "_Z10TestCatch1v", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 292, +// CHECK-NEXT: "line": 14, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 333, +// CHECK-NEXT: "line": 19, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXTryStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 297, +// CHECK-NEXT: "line": 15, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 330, +// CHECK-NEXT: "line": 18, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 301, +// CHECK-NEXT: "line": 15, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 306, +// CHECK-NEXT: "line": 16, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXCatchStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 311, +// CHECK-NEXT: "line": 17, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 330, +// CHECK-NEXT: "line": 18, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 322, +// CHECK-NEXT: "line": 17, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 318, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 322, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 325, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 330, +// CHECK-NEXT: "line": 18, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 343, +// CHECK-NEXT: "line": 21, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 338, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 395, +// CHECK-NEXT: "line": 26, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestCatch2", +// CHECK-NEXT: "mangledName": "_Z10TestCatch2v", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 356, +// CHECK-NEXT: "line": 21, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 395, +// CHECK-NEXT: "line": 26, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXTryStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 361, +// CHECK-NEXT: "line": 22, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 392, +// CHECK-NEXT: "line": 25, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 365, +// CHECK-NEXT: "line": 22, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 370, +// CHECK-NEXT: "line": 23, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXCatchStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 375, +// CHECK-NEXT: "line": 24, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 392, +// CHECK-NEXT: "line": 25, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x0" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 387, +// CHECK-NEXT: "line": 24, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 392, +// CHECK-NEXT: "line": 25, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 405, +// CHECK-NEXT: "line": 28, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 400, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 537, +// CHECK-NEXT: "line": 36, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestAllocationExprs", +// CHECK-NEXT: "mangledName": "_Z19TestAllocationExprsv", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 427, +// CHECK-NEXT: "line": 28, +// CHECK-NEXT: "col": 28, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 537, +// CHECK-NEXT: "line": 36, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 432, +// CHECK-NEXT: "line": 29, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 438, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 437, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 432, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 437, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "p", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 443, +// CHECK-NEXT: "line": 30, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 451, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "opcode": "=", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 443, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 443, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "p", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXNewExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 447, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 451, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "operatorNewDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "operator new", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *(__size_t)" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDeleteExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 459, +// CHECK-NEXT: "line": 31, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 466, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "operatorDeleteDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "operator delete", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (void *, __size_t) noexcept" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 466, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 466, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 466, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 466, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "p", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 472, +// CHECK-NEXT: "line": 32, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 485, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "opcode": "=", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 472, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 472, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "p", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXNewExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 476, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 485, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isArray": true, +// CHECK-NEXT: "operatorNewDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "operator new[]", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *(__size_t)" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 484, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 484, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "__size_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralCast", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 484, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 484, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "2" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDeleteExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 491, +// CHECK-NEXT: "line": 33, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 500, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isArray": true, +// CHECK-NEXT: "isArrayAsWritten": true, +// CHECK-NEXT: "operatorDeleteDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "operator delete[]", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (void *) noexcept" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 500, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 500, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 500, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 500, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "p", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 506, +// CHECK-NEXT: "line": 34, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 516, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "opcode": "=", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 506, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 506, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "p", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXNewExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 510, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 516, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isGlobal": true, +// CHECK-NEXT: "operatorNewDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "operator new", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *(__size_t)" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDeleteExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 524, +// CHECK-NEXT: "line": 35, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 533, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isGlobal": true, +// CHECK-NEXT: "operatorDeleteDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "name": "operator delete", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (void *, __size_t) noexcept" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 533, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 533, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 533, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 533, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "p", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "operator new", +// CHECK-NEXT: "mangledName": "_Znwm", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *(__size_t)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "__size_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PredefinedSugarType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "__size_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "unsigned long" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VisibilityAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "implicit": true, +// CHECK-NEXT: "visibility": "default" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ReturnsNonNullAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "implicit": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "AllocSizeAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "implicit": true +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator new", +// CHECK-NEXT: "mangledName": "_ZnwmSt11align_val_t", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *(__size_t, std::align_val_t)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "__size_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "std::align_val_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "EnumType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "std::align_val_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "EnumDecl", +// CHECK-NEXT: "name": "align_val_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "enum" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VisibilityAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "implicit": true, +// CHECK-NEXT: "visibility": "default" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ReturnsNonNullAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "implicit": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "AllocSizeAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "implicit": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "AllocAlignAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "implicit": true +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "operator new[]", +// CHECK-NEXT: "mangledName": "_Znam", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *(__size_t)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "__size_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VisibilityAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "implicit": true, +// CHECK-NEXT: "visibility": "default" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ReturnsNonNullAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "implicit": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "AllocSizeAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "implicit": true +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator new[]", +// CHECK-NEXT: "mangledName": "_ZnamSt11align_val_t", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *(__size_t, std::align_val_t)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "__size_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "std::align_val_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "EnumDecl", +// CHECK-NEXT: "name": "align_val_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "enum" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VisibilityAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "implicit": true, +// CHECK-NEXT: "visibility": "default" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ReturnsNonNullAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "implicit": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "AllocSizeAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "implicit": true +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "AllocAlignAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "implicit": true +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator delete", +// CHECK-NEXT: "mangledName": "_ZdlPv", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (void *) noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "void" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VisibilityAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "implicit": true, +// CHECK-NEXT: "visibility": "default" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator delete", +// CHECK-NEXT: "mangledName": "_ZdlPvSt11align_val_t", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (void *, std::align_val_t) noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "void" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "std::align_val_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "EnumDecl", +// CHECK-NEXT: "name": "align_val_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "enum" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VisibilityAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "implicit": true, +// CHECK-NEXT: "visibility": "default" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "operator delete", +// CHECK-NEXT: "mangledName": "_ZdlPvm", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (void *, __size_t) noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "void" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "__size_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VisibilityAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "implicit": true, +// CHECK-NEXT: "visibility": "default" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator delete", +// CHECK-NEXT: "mangledName": "_ZdlPvmSt11align_val_t", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (void *, __size_t, std::align_val_t) noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "void" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "__size_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "std::align_val_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "EnumDecl", +// CHECK-NEXT: "name": "align_val_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "enum" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VisibilityAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "implicit": true, +// CHECK-NEXT: "visibility": "default" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "operator delete[]", +// CHECK-NEXT: "mangledName": "_ZdaPv", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (void *) noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "void" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VisibilityAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "implicit": true, +// CHECK-NEXT: "visibility": "default" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator delete[]", +// CHECK-NEXT: "mangledName": "_ZdaPvSt11align_val_t", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (void *, std::align_val_t) noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "void" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "std::align_val_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "EnumDecl", +// CHECK-NEXT: "name": "align_val_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "enum" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VisibilityAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "implicit": true, +// CHECK-NEXT: "visibility": "default" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator delete[]", +// CHECK-NEXT: "mangledName": "_ZdaPvm", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (void *, __size_t) noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "void" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "__size_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VisibilityAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "implicit": true, +// CHECK-NEXT: "visibility": "default" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "operator delete[]", +// CHECK-NEXT: "mangledName": "_ZdaPvmSt11align_val_t", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (void *, __size_t, std::align_val_t) noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "void" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "__size_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "std::align_val_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "EnumDecl", +// CHECK-NEXT: "name": "align_val_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "enum" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VisibilityAttr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "implicit": true, +// CHECK-NEXT: "visibility": "default" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionTemplateDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 637, +// CHECK-NEXT: "line": 40, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 27 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 609, +// CHECK-NEXT: "line": 39, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 700, +// CHECK-NEXT: "line": 43, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestDependentAllocationExpr", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 628, +// CHECK-NEXT: "line": 39, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 619, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 628, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "T", +// CHECK-NEXT: "tagUsed": "typename", +// CHECK-NEXT: "depth": 0, +// CHECK-NEXT: "index": 0 +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 637, +// CHECK-NEXT: "line": 40, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 27 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 632, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 700, +// CHECK-NEXT: "line": 43, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestDependentAllocationExpr", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 667, +// CHECK-NEXT: "line": 40, +// CHECK-NEXT: "col": 36, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 700, +// CHECK-NEXT: "line": 43, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 672, +// CHECK-NEXT: "line": 41, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 684, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 675, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 672, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 683, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "p", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "T *" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXNewExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 679, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 683, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "T *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "T *" +// CHECK-NEXT: }, +// CHECK-NEXT: "isDependent": true, +// CHECK-NEXT: "isInstantiationDependent": true, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "T" +// CHECK-NEXT: }, +// CHECK-NEXT: "isDependent": true, +// CHECK-NEXT: "isInstantiationDependent": true, +// CHECK-NEXT: "depth": 0, +// CHECK-NEXT: "index": 0, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmDecl", +// CHECK-NEXT: "name": "T" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDeleteExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 689, +// CHECK-NEXT: "line": 42, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 696, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 696, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 696, +// CHECK-NEXT: "col": 10, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "T *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "p", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "T *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionTemplateDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 816, +// CHECK-NEXT: "line": 51, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 28 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 788, +// CHECK-NEXT: "line": 50, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 960, +// CHECK-NEXT: "line": 56, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestDependentScopeMemberExpr", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 807, +// CHECK-NEXT: "line": 50, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 798, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 807, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "T", +// CHECK-NEXT: "tagUsed": "typename", +// CHECK-NEXT: "depth": 0, +// CHECK-NEXT: "index": 0 +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 816, +// CHECK-NEXT: "line": 51, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 28 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 811, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 960, +// CHECK-NEXT: "line": 56, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestDependentScopeMemberExpr", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 847, +// CHECK-NEXT: "line": 51, +// CHECK-NEXT: "col": 37, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 960, +// CHECK-NEXT: "line": 56, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 852, +// CHECK-NEXT: "line": 52, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 31 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 890, +// CHECK-NEXT: "col": 41, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 887, +// CHECK-NEXT: "col": 38, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 852, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 31 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 887, +// CHECK-NEXT: "col": 38, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "obj", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "DependentScopeMemberExprWrapper" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "DependentScopeMemberExprWrapper" +// CHECK-NEXT: }, +// CHECK-NEXT: "isDependent": true, +// CHECK-NEXT: "isInstantiationDependent": true, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateSpecializationType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "DependentScopeMemberExprWrapper" +// CHECK-NEXT: }, +// CHECK-NEXT: "isDependent": true, +// CHECK-NEXT: "isInstantiationDependent": true, +// CHECK-NEXT: "templateName": "DependentScopeMemberExprWrapper", +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "kind": "TemplateArgument", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "T" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "T" +// CHECK-NEXT: }, +// CHECK-NEXT: "isDependent": true, +// CHECK-NEXT: "isInstantiationDependent": true, +// CHECK-NEXT: "depth": 0, +// CHECK-NEXT: "index": 0, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmDecl", +// CHECK-NEXT: "name": "T" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 895, +// CHECK-NEXT: "line": 53, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 910, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "=", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDependentScopeMemberExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 895, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 899, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "isArrow": false, +// CHECK-NEXT: "member": "member", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 895, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 895, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "DependentScopeMemberExprWrapper" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "obj", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "DependentScopeMemberExprWrapper" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXUnresolvedConstructExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 908, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 910, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "T" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 916, +// CHECK-NEXT: "line": 54, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 931, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "=", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDependentScopeMemberExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 916, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 920, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "isArrow": false, +// CHECK-NEXT: "member": "member", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 916, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 916, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "DependentScopeMemberExprWrapper" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "obj", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "DependentScopeMemberExprWrapper" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXUnresolvedConstructExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 929, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 931, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "T" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "list": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "InitListExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 930, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 931, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 937, +// CHECK-NEXT: "line": 55, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 956, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "=", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDependentScopeMemberExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 937, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 945, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "isArrow": true, +// CHECK-NEXT: "member": "member", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParenExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 937, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 942, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 938, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 939, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "&", +// CHECK-NEXT: "canOverflow": false, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 939, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 939, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "DependentScopeMemberExprWrapper" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "obj", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "DependentScopeMemberExprWrapper" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXUnresolvedConstructExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 954, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 956, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "T" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionTemplateDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1113, +// CHECK-NEXT: "line": 65, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 36 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1085, +// CHECK-NEXT: "line": 64, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1240, +// CHECK-NEXT: "line": 68, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestDependentScopeTemplateMemberExpr", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1104, +// CHECK-NEXT: "line": 64, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1095, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1104, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "T", +// CHECK-NEXT: "tagUsed": "typename", +// CHECK-NEXT: "depth": 0, +// CHECK-NEXT: "index": 0 +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1113, +// CHECK-NEXT: "line": 65, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 36 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1108, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1240, +// CHECK-NEXT: "line": 68, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestDependentScopeTemplateMemberExpr", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1152, +// CHECK-NEXT: "line": 65, +// CHECK-NEXT: "col": 45, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1240, +// CHECK-NEXT: "line": 68, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1157, +// CHECK-NEXT: "line": 66, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 36 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1200, +// CHECK-NEXT: "col": 46, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1197, +// CHECK-NEXT: "col": 43, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1157, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 36 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1197, +// CHECK-NEXT: "col": 43, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "obj", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "OtherDependentScopeMemberExprWrapper" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ElaboratedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "OtherDependentScopeMemberExprWrapper" +// CHECK-NEXT: }, +// CHECK-NEXT: "isDependent": true, +// CHECK-NEXT: "isInstantiationDependent": true, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateSpecializationType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "OtherDependentScopeMemberExprWrapper" +// CHECK-NEXT: }, +// CHECK-NEXT: "isDependent": true, +// CHECK-NEXT: "isInstantiationDependent": true, +// CHECK-NEXT: "templateName": "OtherDependentScopeMemberExprWrapper", +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "kind": "TemplateArgument", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "T" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "T" +// CHECK-NEXT: }, +// CHECK-NEXT: "isDependent": true, +// CHECK-NEXT: "isInstantiationDependent": true, +// CHECK-NEXT: "depth": 0, +// CHECK-NEXT: "index": 0, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmDecl", +// CHECK-NEXT: "name": "T" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1205, +// CHECK-NEXT: "line": 67, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1236, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "=", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXDependentScopeMemberExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1205, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1228, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "isArrow": false, +// CHECK-NEXT: "member": "member", +// CHECK-NEXT: "hasTemplateKeyword": true, +// CHECK-NEXT: "hasExplicitTemplateArgs": true, +// CHECK-NEXT: "explicitTemplateArgs": [ +// CHECK-NEXT: { +// CHECK-NEXT: "kind": "TemplateArgument", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1225, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1225, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ], +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1205, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1205, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "OtherDependentScopeMemberExprWrapper" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "obj", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "OtherDependentScopeMemberExprWrapper" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXScalarValueInitExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1232, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1236, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1288, +// CHECK-NEXT: "line": 75, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 17 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1283, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1330, +// CHECK-NEXT: "line": 78, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestUnionInitList", +// CHECK-NEXT: "mangledName": "_Z17TestUnionInitListv", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1309, +// CHECK-NEXT: "line": 76, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1330, +// CHECK-NEXT: "line": 78, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1314, +// CHECK-NEXT: "line": 77, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1327, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1316, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1314, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1326, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "us", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "U[3]" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "InitListExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1324, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1326, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "U[3]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "array_filler": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "InitListExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1326, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1326, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "U" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "field": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "InitListExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1325, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1325, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "U" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "field": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FieldDecl", +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1325, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1325, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ConstantArrayType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "U[3]" +// CHECK-NEXT: }, +// CHECK-NEXT: "size": 3, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "array" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "union" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "U" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "union" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1340, +// CHECK-NEXT: "line": 80, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 10 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1335, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1389, +// CHECK-NEXT: "line": 83, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestSwitch", +// CHECK-NEXT: "mangledName": "_Z10TestSwitchi", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1355, +// CHECK-NEXT: "line": 80, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1351, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1355, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1358, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1389, +// CHECK-NEXT: "line": 83, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "SwitchStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1363, +// CHECK-NEXT: "line": 81, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1386, +// CHECK-NEXT: "line": 82, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "hasInit": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1371, +// CHECK-NEXT: "line": 81, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1376, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1375, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1371, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1375, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1378, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1378, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1378, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1378, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1386, +// CHECK-NEXT: "line": 82, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1386, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1399, +// CHECK-NEXT: "line": 85, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1394, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1551, +// CHECK-NEXT: "line": 96, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestIf", +// CHECK-NEXT: "mangledName": "_Z6TestIfb", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (bool)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1411, +// CHECK-NEXT: "line": 85, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1406, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1411, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1414, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1551, +// CHECK-NEXT: "line": 96, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IfStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1419, +// CHECK-NEXT: "line": 86, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1449, +// CHECK-NEXT: "line": 87, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "hasInit": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1423, +// CHECK-NEXT: "line": 86, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1439, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1433, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1423, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 5 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1437, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1437, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1437, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "12" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "const", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1441, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1441, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralToBoolean", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1441, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1441, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1441, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1441, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "nonOdrUseReason": "constant", +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1449, +// CHECK-NEXT: "line": 87, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1449, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IfStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1456, +// CHECK-NEXT: "line": 89, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1491, +// CHECK-NEXT: "line": 90, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ConstantExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1470, +// CHECK-NEXT: "line": 89, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1483, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "true", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1470, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1483, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "==", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryExprOrTypeTraitExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1470, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1478, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "__size_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "name": "sizeof", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParenExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1476, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1478, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1477, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1477, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "nonOdrUseReason": "unevaluated", +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1483, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1483, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "__size_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralCast", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1483, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1483, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1491, +// CHECK-NEXT: "line": 90, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1491, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IfStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1498, +// CHECK-NEXT: "line": 92, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1548, +// CHECK-NEXT: "line": 95, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "hasElse": true, +// CHECK-NEXT: "isConstexpr": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ConstantExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1512, +// CHECK-NEXT: "line": 92, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1525, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "true", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1512, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1525, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "==", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryExprOrTypeTraitExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1512, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 6 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1520, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "__size_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "name": "sizeof", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParenExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1518, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1520, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1519, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1519, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "b", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "nonOdrUseReason": "unevaluated", +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "unsigned", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1525, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1525, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "unsigned long", +// CHECK-NEXT: "qualType": "__size_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralCast", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1525, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1525, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1533, +// CHECK-NEXT: "line": 93, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1533, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1548, +// CHECK-NEXT: "line": 95, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1548, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1631, +// CHECK-NEXT: "line": 103, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1626, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1822, +// CHECK-NEXT: "line": 117, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestIteration", +// CHECK-NEXT: "mangledName": "_Z13TestIterationv", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void ()" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1647, +// CHECK-NEXT: "line": 103, +// CHECK-NEXT: "col": 22, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1822, +// CHECK-NEXT: "line": 117, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ForStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1652, +// CHECK-NEXT: "line": 104, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1689, +// CHECK-NEXT: "line": 105, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1657, +// CHECK-NEXT: "line": 104, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1666, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1661, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1657, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1665, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1665, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1665, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1668, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1676, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1672, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1668, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1676, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "j", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1676, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1676, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1676, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1676, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1672, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1672, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "IntegralToBoolean", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1672, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1672, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1672, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1672, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "j", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1679, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1681, +// CHECK-NEXT: "col": 32, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "++", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1681, +// CHECK-NEXT: "col": 32, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1681, +// CHECK-NEXT: "col": 32, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "i", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1689, +// CHECK-NEXT: "line": 105, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1689, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1696, +// CHECK-NEXT: "line": 107, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1708, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1700, +// CHECK-NEXT: "col": 7, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1696, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1707, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "vals", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[10]" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ConstantArrayType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[10]" +// CHECK-NEXT: }, +// CHECK-NEXT: "size": 10, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "array" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXForRangeStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1713, +// CHECK-NEXT: "line": 108, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1737, +// CHECK-NEXT: "line": 109, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: {}, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1726, +// CHECK-NEXT: "line": 108, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1726, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1726, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1726, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1726, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "__range1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int (&)[10]" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1726, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1726, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[10]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "vals", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[10]" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "array" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int (&)[10]" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "size": 10, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "array" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "__begin1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "ArrayToPointerDecay", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[10]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__range1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int (&)[10]" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "array" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "AutoType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "undeduced": false, +// CHECK-NEXT: "typeKeyword": "auto", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DecayedType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "size": 10, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "array" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1726, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "__end1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1726, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "+", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "ArrayToPointerDecay", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[10]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__range1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int (&)[10]" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "array" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1726, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1726, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "long", +// CHECK-NEXT: "qualType": "__ptrdiff_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "10" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "AutoType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "undeduced": false, +// CHECK-NEXT: "typeKeyword": "auto", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "!=", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__begin1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__end1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "++", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__begin1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1718, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1730, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1722, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1718, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "v", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "*", +// CHECK-NEXT: "canOverflow": false, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1724, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__begin1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1737, +// CHECK-NEXT: "line": 109, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1737, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1744, +// CHECK-NEXT: "line": 111, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 9 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1755, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1754, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1744, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 9 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1754, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "C", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Container" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "call", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXConstructExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1754, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1754, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Container" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "ctorType": { +// CHECK-NEXT: "qualType": "void () noexcept" +// CHECK-NEXT: }, +// CHECK-NEXT: "hadMultipleCandidates": true, +// CHECK-NEXT: "constructionKind": "complete" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "Container" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXForRangeStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1760, +// CHECK-NEXT: "line": 112, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1781, +// CHECK-NEXT: "line": 113, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: {}, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1773, +// CHECK-NEXT: "line": 112, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1773, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1773, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1773, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1773, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "__range1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Container &" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1773, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1773, +// CHECK-NEXT: "col": 16, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Container" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "C", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Container" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "LValueReferenceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Container &" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXRecordDecl", +// CHECK-NEXT: "name": "Container" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "__begin1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMemberCallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MemberExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "name": "begin", +// CHECK-NEXT: "isArrow": false, +// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const Container" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "castKind": "NoOp", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Container" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__range1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Container &" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "undeduced": false, +// CHECK-NEXT: "typeKeyword": "auto", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "__end1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXMemberCallExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "MemberExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "name": "end", +// CHECK-NEXT: "isArrow": false, +// CHECK-NEXT: "referencedMemberDecl": "0x{{.*}}", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const Container" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "castKind": "NoOp", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Container" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__range1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Container &" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "undeduced": false, +// CHECK-NEXT: "typeKeyword": "auto", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "!=", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__begin1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__end1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "++", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__begin1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1765, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1774, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1769, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1765, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "v", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "*", +// CHECK-NEXT: "canOverflow": false, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1771, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__begin1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1781, +// CHECK-NEXT: "line": 113, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1781, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CXXForRangeStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1788, +// CHECK-NEXT: "line": 115, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1819, +// CHECK-NEXT: "line": 116, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1793, +// CHECK-NEXT: "line": 115, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1798, +// CHECK-NEXT: "col": 13, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1797, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1793, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1797, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1808, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1808, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1808, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1808, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1808, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "__range1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int (&)[10]" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1808, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1808, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[10]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "vals", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[10]" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "array" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "size": 10, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "array" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "__begin1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "ArrayToPointerDecay", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[10]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__range1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int (&)[10]" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "array" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "undeduced": false, +// CHECK-NEXT: "typeKeyword": "auto", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "size": 10, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "array" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1808, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "__end1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1808, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "+", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "ArrayToPointerDecay", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int[10]" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__range1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int (&)[10]" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "array" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1808, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1808, +// CHECK-NEXT: "col": 23, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "desugaredQualType": "long", +// CHECK-NEXT: "qualType": "__ptrdiff_t" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "10" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "undeduced": false, +// CHECK-NEXT: "typeKeyword": "auto", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BinaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "bool" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "opcode": "!=", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__begin1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__end1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "++", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__begin1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1800, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1812, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1804, +// CHECK-NEXT: "col": 19, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1800, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "v", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "init": "c", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "UnaryOperator", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "isPostfix": false, +// CHECK-NEXT: "opcode": "*", +// CHECK-NEXT: "canOverflow": false, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1806, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "name": "__begin1", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int *" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "NullStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1819, +// CHECK-NEXT: "line": 116, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1819, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionTemplateDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1856, +// CHECK-NEXT: "line": 120, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 33 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1827, +// CHECK-NEXT: "line": 119, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1966, +// CHECK-NEXT: "line": 123, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestDependentGenericSelectionExpr", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1846, +// CHECK-NEXT: "line": 119, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1837, +// CHECK-NEXT: "col": 11, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1846, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "Ty", +// CHECK-NEXT: "tagUsed": "typename", +// CHECK-NEXT: "depth": 0, +// CHECK-NEXT: "index": 0 +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1856, +// CHECK-NEXT: "line": 120, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 33 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1851, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1966, +// CHECK-NEXT: "line": 123, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestDependentGenericSelectionExpr", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (Ty)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 1893, +// CHECK-NEXT: "line": 120, +// CHECK-NEXT: "col": 43, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1890, +// CHECK-NEXT: "col": 40, +// CHECK-NEXT: "tokLen": 2 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1893, +// CHECK-NEXT: "col": 43, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isReferenced": true, +// CHECK-NEXT: "name": "T", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Ty" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Ty" +// CHECK-NEXT: }, +// CHECK-NEXT: "isDependent": true, +// CHECK-NEXT: "isInstantiationDependent": true, +// CHECK-NEXT: "depth": 0, +// CHECK-NEXT: "index": 0, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmDecl", +// CHECK-NEXT: "name": "Ty" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1896, +// CHECK-NEXT: "col": 46, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1966, +// CHECK-NEXT: "line": 123, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "GenericSelectionExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1901, +// CHECK-NEXT: "line": 121, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1933, +// CHECK-NEXT: "col": 35, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "resultDependent": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1910, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1910, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Ty" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "T", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Ty" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "nonOdrUseReason": "unevaluated", +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "depth": 0, +// CHECK-NEXT: "index": 0, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmDecl", +// CHECK-NEXT: "name": "Ty" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "associationKind": "case", +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1919, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1919, +// CHECK-NEXT: "col": 21, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "1" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "associationKind": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1932, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1932, +// CHECK-NEXT: "col": 34, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "GenericSelectionExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1939, +// CHECK-NEXT: "line": 122, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 8 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1962, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "resultDependent": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1948, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Ty" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "T", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "Ty" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "nonOdrUseReason": "unevaluated", +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "refId": "0x{{.*}}", +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "depth": 0, +// CHECK-NEXT: "index": 0, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "TemplateTypeParmDecl", +// CHECK-NEXT: "name": "Ty" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "refId": "0x{{.*}}" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "associationKind": "default", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "IntegerLiteral", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 1961, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 1961, +// CHECK-NEXT: "col": 25, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "value": "0" +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } diff --git a/clang/test/AST/ast-dump-stmt-json.m b/clang/test/AST/ast-dump-stmt-json.m index 096b9c3900d36..f3d7add4aafe3 100644 --- a/clang/test/AST/ast-dump-stmt-json.m +++ b/clang/test/AST/ast-dump-stmt-json.m @@ -1,773 +1,877 @@ -// RUN: %clang_cc1 -triple x86_64-pc-win32 -Wno-unused -fblocks -fobjc-exceptions -ast-dump=json -ast-dump-filter Test %s | FileCheck %s - -void TestBlockExpr(int x) { - ^{ x; }; -} - -void TestExprWithCleanup(int x) { - ^{ x; }; -} - -@interface A -@end - -void TestObjCAtCatchStmt(void) { - @try { - } @catch(A *a) { - } @catch(...) { - } @finally { - } -} - -// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 3, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 13 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 5, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestBlockExpr", -// CHECK-NEXT: "mangledName": "TestBlockExpr", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (int)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 3, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 20, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 24, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 27, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 5, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ExprWithCleanups", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 4, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (^)(void)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "cleanupsHaveSideEffects": true, -// CHECK-NEXT: "cleanups": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BlockDecl" -// CHECK-NEXT: } -// CHECK-NEXT: ], -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BlockExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (^)(void)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BlockDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "kind": "Capture", -// CHECK-NEXT: "var": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 7, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 9, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestExprWithCleanup", -// CHECK-NEXT: "mangledName": "TestExprWithCleanup", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (int)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 7, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 26, -// CHECK-NEXT: "tokLen": 3 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 30, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isUsed": true, -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 33, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 9, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ExprWithCleanups", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 8, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (^)(void)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "cleanupsHaveSideEffects": true, -// CHECK-NEXT: "cleanups": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BlockDecl" -// CHECK-NEXT: } -// CHECK-NEXT: ], -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BlockExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (^)(void)" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "BlockDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "kind": "Capture", -// CHECK-NEXT: "var": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 4, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 9, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitCastExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "prvalue", -// CHECK-NEXT: "castKind": "LValueToRValue", -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "DeclRefExpr", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "const int" -// CHECK-NEXT: }, -// CHECK-NEXT: "valueCategory": "lvalue", -// CHECK-NEXT: "referencedDecl": { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ParmVarDecl", -// CHECK-NEXT: "name": "x", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "int" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } - - -// CHECK-NOT: {{^}}Dumping -// CHECK: "kind": "FunctionDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "file": "{{.*}}", -// CHECK-NEXT: "line": 14, -// CHECK-NEXT: "col": 6, -// CHECK-NEXT: "tokLen": 19 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 4 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 20, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "TestObjCAtCatchStmt", -// CHECK-NEXT: "mangledName": "TestObjCAtCatchStmt", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "void (void)" -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 14, -// CHECK-NEXT: "col": 32, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 20, -// CHECK-NEXT: "col": 1, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCAtTryStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 15, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 19, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 15, -// CHECK-NEXT: "col": 8, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 16, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCAtCatchStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 17, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "VarDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 16, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 12, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 15, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "name": "a", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "A *" -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 18, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 17, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCAtCatchStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 18, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isCatchAll": true, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 17, -// CHECK-NEXT: "col": 17, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 18, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ObjCAtFinallyStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 5, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 19, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CapturedStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 18, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 19, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CapturedDecl", -// CHECK-NEXT: "loc": {}, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": {}, -// CHECK-NEXT: "end": {} -// CHECK-NEXT: }, -// CHECK-NEXT: "inner": [ -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "CompoundStmt", -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 18, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 19, -// CHECK-NEXT: "col": 3, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: { -// CHECK-NEXT: "id": "0x{{.*}}", -// CHECK-NEXT: "kind": "ImplicitParamDecl", -// CHECK-NEXT: "loc": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "line": 18, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "range": { -// CHECK-NEXT: "begin": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: }, -// CHECK-NEXT: "end": { -// CHECK-NEXT: "offset": {{[0-9]+}}, -// CHECK-NEXT: "col": 14, -// CHECK-NEXT: "tokLen": 1 -// CHECK-NEXT: } -// CHECK-NEXT: }, -// CHECK-NEXT: "isImplicit": true, -// CHECK-NEXT: "name": "__context", -// CHECK-NEXT: "type": { -// CHECK-NEXT: "qualType": "struct (unnamed at {{.*}}:18:14) *" -// CHECK-NEXT: } -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } -// CHECK-NEXT: ] -// CHECK-NEXT: } +// RUN: %clang_cc1 -triple x86_64-pc-win32 -Wno-unused -fblocks -fobjc-exceptions -ast-dump=json -ast-dump-filter Test %s | FileCheck %s + +void TestBlockExpr(int x) { + ^{ x; }; +} + +void TestExprWithCleanup(int x) { + ^{ x; }; +} + +@interface A +@end + +void TestObjCAtCatchStmt(void) { + @try { + } @catch(A *a) { + } @catch(...) { + } @finally { + } +} + +// NOTE: CHECK lines have been autogenerated by gen_ast_dump_json_test.py + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 145, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 3, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 13 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 140, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 181, +// CHECK-NEXT: "line": 5, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestBlockExpr", +// CHECK-NEXT: "mangledName": "TestBlockExpr", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 163, +// CHECK-NEXT: "line": 3, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 159, +// CHECK-NEXT: "col": 20, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 163, +// CHECK-NEXT: "col": 24, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 166, +// CHECK-NEXT: "col": 27, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 181, +// CHECK-NEXT: "line": 5, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ExprWithCleanups", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 171, +// CHECK-NEXT: "line": 4, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 177, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (^)(void)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "cleanupsHaveSideEffects": true, +// CHECK-NEXT: "cleanups": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BlockDecl" +// CHECK-NEXT: } +// CHECK-NEXT: ], +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BlockExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 171, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 177, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (^)(void)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BlockDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 171, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 171, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 177, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "kind": "Capture", +// CHECK-NEXT: "var": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 172, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 177, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 174, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 174, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 174, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 174, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "const", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 191, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 7, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 186, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 233, +// CHECK-NEXT: "line": 9, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestExprWithCleanup", +// CHECK-NEXT: "mangledName": "TestExprWithCleanup", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (int)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 215, +// CHECK-NEXT: "line": 7, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 211, +// CHECK-NEXT: "col": 26, +// CHECK-NEXT: "tokLen": 3 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 215, +// CHECK-NEXT: "col": 30, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isUsed": true, +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BuiltinType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 218, +// CHECK-NEXT: "col": 33, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 233, +// CHECK-NEXT: "line": 9, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ExprWithCleanups", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 223, +// CHECK-NEXT: "line": 8, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 229, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (^)(void)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "cleanupsHaveSideEffects": true, +// CHECK-NEXT: "cleanups": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BlockDecl" +// CHECK-NEXT: } +// CHECK-NEXT: ], +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BlockExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 223, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 229, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (^)(void)" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "BlockDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 223, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 223, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 229, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "kind": "Capture", +// CHECK-NEXT: "var": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 224, +// CHECK-NEXT: "col": 4, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 229, +// CHECK-NEXT: "col": 9, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitCastExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 226, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 226, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "prvalue", +// CHECK-NEXT: "castKind": "LValueToRValue", +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "DeclRefExpr", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 226, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 226, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int" +// CHECK-NEXT: }, +// CHECK-NEXT: "valueCategory": "lvalue", +// CHECK-NEXT: "referencedDecl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ParmVarDecl", +// CHECK-NEXT: "name": "x", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "int" +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "qualType": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "QualType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "const int" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualifiers": "const", +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "signed", +// CHECK-NEXT: "integer" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } + + +// CHECK-NOT: {{^}}Dumping +// CHECK: "kind": "FunctionDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 265, +// CHECK-NEXT: "file": "{{.*}}", +// CHECK-NEXT: "line": 14, +// CHECK-NEXT: "col": 6, +// CHECK-NEXT: "tokLen": 19 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 260, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 4 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 364, +// CHECK-NEXT: "line": 20, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "TestObjCAtCatchStmt", +// CHECK-NEXT: "mangledName": "TestObjCAtCatchStmt", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "void (void)" +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 291, +// CHECK-NEXT: "line": 14, +// CHECK-NEXT: "col": 32, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 364, +// CHECK-NEXT: "line": 20, +// CHECK-NEXT: "col": 1, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCAtTryStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 296, +// CHECK-NEXT: "line": 15, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 361, +// CHECK-NEXT: "line": 19, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 301, +// CHECK-NEXT: "line": 15, +// CHECK-NEXT: "col": 8, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 306, +// CHECK-NEXT: "line": 16, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCAtCatchStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 308, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 326, +// CHECK-NEXT: "line": 17, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "VarDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 318, +// CHECK-NEXT: "line": 16, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 315, +// CHECK-NEXT: "col": 12, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 318, +// CHECK-NEXT: "col": 15, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "name": "a", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "A *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCObjectPointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "A *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "A" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCInterfaceDecl", +// CHECK-NEXT: "name": "A" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 321, +// CHECK-NEXT: "col": 18, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 326, +// CHECK-NEXT: "line": 17, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCAtCatchStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 328, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 345, +// CHECK-NEXT: "line": 18, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isCatchAll": true, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 340, +// CHECK-NEXT: "line": 17, +// CHECK-NEXT: "col": 17, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 345, +// CHECK-NEXT: "line": 18, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ObjCAtFinallyStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 347, +// CHECK-NEXT: "col": 5, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 361, +// CHECK-NEXT: "line": 19, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CapturedStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 356, +// CHECK-NEXT: "line": 18, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 361, +// CHECK-NEXT: "line": 19, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CapturedDecl", +// CHECK-NEXT: "loc": {}, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": {}, +// CHECK-NEXT: "end": {} +// CHECK-NEXT: }, +// CHECK-NEXT: "inner": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "CompoundStmt", +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 356, +// CHECK-NEXT: "line": 18, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 361, +// CHECK-NEXT: "line": 19, +// CHECK-NEXT: "col": 3, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "ImplicitParamDecl", +// CHECK-NEXT: "loc": { +// CHECK-NEXT: "offset": 356, +// CHECK-NEXT: "line": 18, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "range": { +// CHECK-NEXT: "begin": { +// CHECK-NEXT: "offset": 356, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: }, +// CHECK-NEXT: "end": { +// CHECK-NEXT: "offset": 356, +// CHECK-NEXT: "col": 14, +// CHECK-NEXT: "tokLen": 1 +// CHECK-NEXT: } +// CHECK-NEXT: }, +// CHECK-NEXT: "isImplicit": true, +// CHECK-NEXT: "name": "__context", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct (unnamed at {{.*}}:18:14) *" +// CHECK-NEXT: }, +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "PointerType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct (unnamed at {{.*}}:18:14) *" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "ptr" +// CHECK-NEXT: ], +// CHECK-NEXT: "typeDetails": [ +// CHECK-NEXT: { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordType", +// CHECK-NEXT: "type": { +// CHECK-NEXT: "qualType": "struct (unnamed at {{.*}}:18:14)" +// CHECK-NEXT: }, +// CHECK-NEXT: "decl": { +// CHECK-NEXT: "id": "0x{{.*}}", +// CHECK-NEXT: "kind": "RecordDecl", +// CHECK-NEXT: "name": "" +// CHECK-NEXT: }, +// CHECK-NEXT: "qualDetails": [ +// CHECK-NEXT: "struct" +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } +// CHECK-NEXT: ] +// CHECK-NEXT: } diff --git a/clang/test/AST/ast-dump-stmt.c b/clang/test/AST/ast-dump-stmt.c index 5c44fea2df6e7..c11f89a50b3ad 100644 --- a/clang/test/AST/ast-dump-stmt.c +++ b/clang/test/AST/ast-dump-stmt.c @@ -11,36 +11,43 @@ int TestLocation = 0; // CHECK: VarDecl{{.*}}TestLocation // CHECK-NEXT: IntegerLiteral 0x{{[^ ]*}} 'int' 0 +// CHECK-NEXT: typeDetails: BuiltinType 0x{{[^ ]*}} 'int' int TestIndent = 1 + (1); -// CHECK: VarDecl{{.*}}TestIndent -// CHECK-NEXT: {{^}}| `-BinaryOperator{{[^()]*$}} -// CHECK-NEXT: {{^}}| |-IntegerLiteral{{.*0[^()]*$}} -// CHECK-NEXT: {{^}}| `-ParenExpr{{.*0[^()]*$}} -// CHECK-NEXT: {{^}}| `-IntegerLiteral{{.*0[^()]*$}} +// CHECK: |-VarDecl {{.*}} TestIndent 'int' cinit +// CHECK: | |-BinaryOperator {{.*}} 'int' '+' +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 1 +// CHECK: | | `-ParenExpr {{.*}} 'int' +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK: | `-typeDetails: BuiltinType {{.*}} 'int' void TestDeclStmt(void) { int x = 0; int y, z; } -// CHECK: FunctionDecl{{.*}}TestDeclStmt -// CHECK-NEXT: CompoundStmt -// CHECK-NEXT: DeclStmt -// CHECK-NEXT: VarDecl{{.*}}x -// CHECK-NEXT: IntegerLiteral -// CHECK-NEXT: DeclStmt -// CHECK-NEXT: VarDecl{{.*}}y -// CHECK-NEXT: VarDecl{{.*}}z + +// CHECK: |-FunctionDecl {{.*}} TestDeclStmt 'void (void)' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | |-DeclStmt {{.*}} +// CHECK: | | `-VarDecl {{.*}} x 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK: | `-DeclStmt {{.*}} +// CHECK: | |-VarDecl {{.*}} y 'int' +// CHECK: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK: | `-VarDecl {{.*}} z 'int' +// CHECK: | `-typeDetails: BuiltinType {{.*}} 'int' int TestOpaqueValueExpr = 0 ?: 1; -// CHECK: VarDecl{{.*}}TestOpaqueValueExpr -// CHECK-NEXT: BinaryConditionalOperator -// CHECK-NEXT: IntegerLiteral -// CHECK-NEXT: OpaqueValueExpr -// CHECK-NEXT: IntegerLiteral -// CHECK-NEXT: OpaqueValueExpr -// CHECK-NEXT: IntegerLiteral -// CHECK-NEXT: IntegerLiteral +// CHECK: |-VarDecl {{.*}} TestOpaqueValueExpr 'int' cinit +// CHECK: | |-BinaryConditionalOperator {{.*}} 'int' +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-OpaqueValueExpr {{.*}} 'int' +// CHECK: | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | |-OpaqueValueExpr {{.*}} 'int' +// CHECK: | | | `-IntegerLiteral {{.*}} 'int' 0 +// CHECK: | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK: | `-typeDetails: BuiltinType {{.*}} 'int' void TestUnaryOperatorExpr(void) { char T1 = 1; @@ -48,32 +55,44 @@ void TestUnaryOperatorExpr(void) { T1++; T2++; - // CHECK: UnaryOperator{{.*}}postfix '++' cannot overflow - // CHECK-NEXT: DeclRefExpr{{.*}}'T1' 'char' - // CHECK-NOT: UnaryOperator{{.*}}postfix '++' cannot overflow - // CHECK: DeclRefExpr{{.*}}'T2' 'int' -T1; -T2; - // CHECK: UnaryOperator{{.*}}prefix '-' cannot overflow - // CHECK-NEXT: ImplicitCastExpr - // CHECK-NEXT: ImplicitCastExpr - // CHECK-NEXT: DeclRefExpr{{.*}}'T1' 'char' - // CHECK-NOT: UnaryOperator{{.*}}prefix '-' cannot overflow - // CHECK: ImplicitCastExpr - // CHECK: DeclRefExpr{{.*}}'T2' 'int' ~T1; ~T2; - // CHECK: UnaryOperator{{.*}}prefix '~' cannot overflow - // CHECK-NEXT: ImplicitCastExpr - // CHECK-NEXT: ImplicitCastExpr - // CHECK-NEXT: DeclRefExpr{{.*}}'T1' 'char' - // CHECK: UnaryOperator{{.*}}prefix '~' cannot overflow - // CHECK-NEXT: ImplicitCastExpr - // CHECK-NEXT: DeclRefExpr{{.*}}'T2' 'int' } +// CHECK: |-FunctionDecl {{.*}} TestUnaryOperatorExpr 'void (void)' +// CHECK: | `-CompoundStmt {{.*}} +// CHECK: | |-DeclStmt {{.*}} +// CHECK: | | `-VarDecl {{.*}} used T1 'char' cinit +// CHECK: | | |-ImplicitCastExpr {{.*}} 'char' +// CHECK: | | | `-IntegerLiteral {{.*}} 'int' 1 +// CHECK: | | `-typeDetails: BuiltinType {{.*}} 'char' +// CHECK: | |-DeclStmt {{.*}} +// CHECK: | | `-VarDecl {{.*}} used T2 'int' cinit +// CHECK: | | |-IntegerLiteral {{.*}} 'int' 1 +// CHECK: | | `-typeDetails: BuiltinType {{.*}} 'int' +// CHECK: | |-UnaryOperator {{.*}} 'char' postfix '++' cannot overflow +// CHECK: | | `-DeclRefExpr {{.*}} 'char' lvalue Var {{.*}} 'T1' 'char' +// CHECK: | |-UnaryOperator {{.*}} 'int' postfix '++' +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'T2' 'int' +// CHECK: | |-UnaryOperator {{.*}} 'int' prefix '-' cannot overflow +// CHECK: | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | `-ImplicitCastExpr {{.*}} 'char' +// CHECK: | | `-DeclRefExpr {{.*}} 'char' lvalue Var {{.*}} 'T1' 'char' +// CHECK: | |-UnaryOperator {{.*}} 'int' prefix '-' +// CHECK: | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'T2' 'int' +// CHECK: | |-UnaryOperator {{.*}} 'int' prefix '~' cannot overflow +// CHECK: | | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | | `-ImplicitCastExpr {{.*}} 'char' +// CHECK: | | `-DeclRefExpr {{.*}} 'char' lvalue Var {{.*}} 'T1' 'char' +// CHECK: | `-UnaryOperator {{.*}} 'int' prefix '~' cannot overflow +// CHECK: | `-ImplicitCastExpr {{.*}} 'int' +// CHECK: | `-DeclRefExpr {{.*}} 'int' lvalue Var {{.*}} 'T2' 'int' + void TestGenericSelectionExpressions(int i) { _Generic(i, int : 12); // CHECK: GenericSelectionExpr 0x{{[^ ]*}} 'int' @@ -155,6 +174,8 @@ void TestLabelsAndGoto(void) { // CHECK-NEXT: DeclStmt // CHECK-NEXT: VarDecl // CHECK-NEXT: AddrLabelExpr 0x{{[^ ]*}} 'void *' label1 0x{{[^ ]*}} + // CHECK-NEXT: typeDetails: PointerType 0x{{[^ ]*}} 'void *' + // CHECK-NEXT: typeDetails: BuiltinType 0x{{[^ ]*}} 'void' goto *ptr; // CHECK-NEXT: IndirectGotoStmt 0x{{[^ ]*}} @@ -303,6 +324,7 @@ void TestIteration(_Bool b) { // CHECK-NEXT: DeclStmt // CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:12 used i 'int' cinit // CHECK-NEXT: IntegerLiteral 0x{{[^ ]*}} 'int' 0 + // CHECK-NEXT: typeDetails: BuiltinType 0x{{[^ ]*}} 'int' // CHECK-NEXT: <<>> // CHECK-NEXT: BinaryOperator 0x{{[^ ]*}} 'int' '<' // CHECK-NEXT: ImplicitCastExpr @@ -397,15 +419,15 @@ void TestMiscStmts(void) { // CHECK-NEXT: DeclStmt // CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:9 used a 'int' cinit // CHECK-NEXT: IntegerLiteral 0x{{[^ ]*}} 'int' 10 - // CHECK-NEXT: ImplicitCastExpr - // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int' lvalue Var 0x{{[^ ]*}} 'a' 'int' + // CHECK: ImplicitCastExpr 0x{{[^ ]*}} + // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int' lvalue Var 0x{{[^ ]*}} 'a' 'int' ({int a = 10; a;;; }); // CHECK-NEXT: StmtExpr 0x{{[^ ]*}} 'int' // CHECK-NEXT: CompoundStmt // CHECK-NEXT: DeclStmt // CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:9 used a 'int' cinit // CHECK-NEXT: IntegerLiteral 0x{{[^ ]*}} 'int' 10 - // CHECK-NEXT: ImplicitCastExpr + // CHECK: ImplicitCastExpr // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int' lvalue Var 0x{{[^ ]*}} 'a' 'int' // CHECK-NEXT: NullStmt // CHECK-NEXT: NullStmt diff --git a/clang/test/AST/ast-dump-stmt.cpp b/clang/test/AST/ast-dump-stmt.cpp index 42c5f3b3498a4..43983d1d7234d 100644 --- a/clang/test/AST/ast-dump-stmt.cpp +++ b/clang/test/AST/ast-dump-stmt.cpp @@ -29,6 +29,7 @@ void TestCatch1() { } // CHECK-NEXT: CXXCatchStmt // CHECK-NEXT: VarDecl {{.*}} x +// CHECK-NEXT: typeDetails // CHECK-NEXT: CompoundStmt catch (int x) { } @@ -98,10 +99,10 @@ void TestUnionInitList() { U us[3] = {1}; // CHECK: VarDecl {{.+}} col:5 us 'U[3]' cinit -// CHECK-NEXT: `-InitListExpr {{.+}} 'U[3]' -// CHECK-NEXT: |-array_filler: InitListExpr {{.+}} 'U' field Field {{.+}} 'i' 'int' -// CHECK-NEXT: `-InitListExpr {{.+}} 'U' field Field {{.+}} 'i' 'int' -// CHECK-NEXT: `-IntegerLiteral {{.+}} 'int' 1 +// CHECK-NEXT: InitListExpr {{.+}} 'U[3]' +// CHECK-NEXT: array_filler: InitListExpr {{.+}} 'U' field Field {{.+}} 'i' 'int' +// CHECK-NEXT: InitListExpr {{.+}} 'U' field Field {{.+}} 'i' 'int' +// CHECK-NEXT: IntegerLiteral {{.+}} 'int' 1 } void TestSwitch(int i) { @@ -110,6 +111,7 @@ void TestSwitch(int i) { // CHECK: SwitchStmt 0x{{[^ ]*}} has_init // CHECK-NEXT: DeclStmt // CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:15 a 'int' + // CHECK-NEXT: typeDetails // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int' lvalue ParmVar 0x{{[^ ]*}} 'i' 'int' // CHECK-NEXT: NullStmt @@ -122,6 +124,7 @@ void TestIf(bool b) { // CHECK-NEXT: DeclStmt // CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:11 i 'int' cinit // CHECK-NEXT: IntegerLiteral 0x{{[^ ]*}} 'int' 12 + // CHECK-NEXT: typeDetails // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'bool' lvalue ParmVar 0x{{[^ ]*}} 'b' 'bool' // CHECK-NEXT: NullStmt @@ -178,10 +181,12 @@ void TestIteration() { // CHECK-NEXT: DeclStmt // CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:12 used i 'int' cinit // CHECK-NEXT: IntegerLiteral 0x{{[^ ]*}} 'int' 0 + // CHECK-NEXT: typeDetails // CHECK-NEXT: DeclStmt // CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:23 used j 'int' cinit // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int' lvalue Var 0x{{[^ ]*}} 'i' 'int' + // CHECK-NEXT: typeDetails // CHECK-NEXT: ImplicitCastExpr 0x{{[^ ]*}} 'bool' // CHECK-NEXT: ImplicitCastExpr 0x{{[^ ]*}} 'int' // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int' lvalue Var 0x{{[^ ]*}} 'j' 'int' @@ -197,17 +202,20 @@ void TestIteration() { // CHECK-NEXT: DeclStmt // CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:16 implicit used __range1 'int (&)[10]' cinit // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int[10]' lvalue Var 0x{{[^ ]*}} 'vals' 'int[10]' + // CHECK-NEXT: typeDetails + // CHECK-NEXT: typeDetails + // CHECK-NEXT: typeDetails // CHECK-NEXT: DeclStmt // CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:14 implicit used __begin1 'int *' cinit // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int[10]' lvalue Var 0x{{[^ ]*}} '__range1' 'int (&)[10]' - // CHECK-NEXT: DeclStmt + // CHECK: DeclStmt // CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:14 implicit used __end1 'int *' cinit // CHECK-NEXT: BinaryOperator 0x{{[^ ]*}} 'int *' '+' // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int[10]' lvalue Var 0x{{[^ ]*}} '__range1' 'int (&)[10]' // CHECK-NEXT: IntegerLiteral 0x{{[^ ]*}} '__ptrdiff_t':'long' 10 - // CHECK-NEXT: BinaryOperator 0x{{[^ ]*}} 'bool' '!=' + // CHECK: BinaryOperator 0x{{[^ ]*}} 'bool' '!=' // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int *' lvalue Var 0x{{[^ ]*}} '__begin1' 'int *' // CHECK-NEXT: ImplicitCastExpr @@ -220,7 +228,7 @@ void TestIteration() { // CHECK-NEXT: UnaryOperator 0x{{[^ ]*}} 'int' lvalue prefix '*' cannot overflow // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int *' lvalue Var 0x{{[^ ]*}} '__begin1' 'int *' - // CHECK-NEXT: NullStmt + // CHECK: NullStmt Container C; for (int v : C) @@ -230,63 +238,63 @@ void TestIteration() { // CHECK-NEXT: DeclStmt // CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:16 implicit used __range1 'Container &' cinit // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'Container' lvalue Var 0x{{[^ ]*}} 'C' 'Container' - // CHECK-NEXT: DeclStmt + // CHECK: DeclStmt // CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:14 implicit used __begin1 'int *' cinit // CHECK-NEXT: CXXMemberCallExpr 0x{{[^ ]*}} 'int *' // CHECK-NEXT: MemberExpr 0x{{[^ ]*}} '' .begin 0x{{[^ ]*}} // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'Container' lvalue Var 0x{{[^ ]*}} '__range1' 'Container &' - // CHECK-NEXT: DeclStmt + // CHECK: DeclStmt // CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:14 implicit used __end1 'int *' cinit // CHECK-NEXT: CXXMemberCallExpr 0x{{[^ ]*}} 'int *' // CHECK-NEXT: MemberExpr 0x{{[^ ]*}} '' .end 0x{{[^ ]*}} // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'Container' lvalue Var 0x{{[^ ]*}} '__range1' 'Container &' - // CHECK-NEXT: BinaryOperator 0x{{[^ ]*}} 'bool' '!=' + // CHECK: BinaryOperator 0x{{[^ ]*}} 'bool' '!=' // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int *' lvalue Var 0x{{[^ ]*}} '__begin1' 'int *' // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int *' lvalue Var 0x{{[^ ]*}} '__end1' 'int *' // CHECK-NEXT: UnaryOperator 0x{{[^ ]*}} 'int *' lvalue prefix '++' // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int *' lvalue Var 0x{{[^ ]*}} '__begin1' 'int *' - // CHECK-NEXT: DeclStmt + // CHECK: DeclStmt // CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:12 v 'int' cinit // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: UnaryOperator 0x{{[^ ]*}} 'int' lvalue prefix '*' cannot overflow // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int *' lvalue Var 0x{{[^ ]*}} '__begin1' 'int *' - // CHECK-NEXT: NullStmt + // CHECK: NullStmt for (int a; int v : vals) ; // CHECK: CXXForRangeStmt 0x{{[^ ]*}} // CHECK-NEXT: DeclStmt // CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:12 a 'int' - // CHECK-NEXT: DeclStmt + // CHECK: DeclStmt // CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:23 implicit used __range1 'int (&)[10]' cinit // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int[10]' lvalue Var 0x{{[^ ]*}} 'vals' 'int[10]' - // CHECK-NEXT: DeclStmt + // CHECK: DeclStmt // CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:21 implicit used __begin1 'int *' cinit // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int[10]' lvalue Var 0x{{[^ ]*}} '__range1' 'int (&)[10]' - // CHECK-NEXT: DeclStmt + // CHECK: DeclStmt // CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:21 implicit used __end1 'int *' cinit // CHECK-NEXT: BinaryOperator 0x{{[^ ]*}} 'int *' '+' // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int[10]' lvalue Var 0x{{[^ ]*}} '__range1' 'int (&)[10]' // CHECK-NEXT: IntegerLiteral 0x{{[^ ]*}} '__ptrdiff_t':'long' 10 - // CHECK-NEXT: BinaryOperator 0x{{[^ ]*}} 'bool' '!=' + // CHECK: BinaryOperator 0x{{[^ ]*}} 'bool' '!=' // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int *' lvalue Var 0x{{[^ ]*}} '__begin1' 'int *' // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int *' lvalue Var 0x{{[^ ]*}} '__end1' 'int *' // CHECK-NEXT: UnaryOperator 0x{{[^ ]*}} 'int *' lvalue prefix '++' // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int *' lvalue Var 0x{{[^ ]*}} '__begin1' 'int *' - // CHECK-NEXT: DeclStmt + // CHECK: DeclStmt // CHECK-NEXT: VarDecl 0x{{[^ ]*}} col:19 v 'int' cinit // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: UnaryOperator 0x{{[^ ]*}} 'int' lvalue prefix '*' cannot overflow // CHECK-NEXT: ImplicitCastExpr // CHECK-NEXT: DeclRefExpr 0x{{[^ ]*}} 'int *' lvalue Var 0x{{[^ ]*}} '__begin1' 'int *' - // CHECK-NEXT: NullStmt -} + // CHECK: NullStmt +} \ No newline at end of file diff --git a/clang/test/AST/ast-dump-stmt.m b/clang/test/AST/ast-dump-stmt.m index e0fc16b3fa825..1b351819ad569 100644 --- a/clang/test/AST/ast-dump-stmt.m +++ b/clang/test/AST/ast-dump-stmt.m @@ -39,7 +39,7 @@ void TestObjCAtCatchStmt(void) { // CHECK-NEXT: CompoundStmt // CHECK-NEXT: ObjCAtCatchStmt{{.*}} // CHECK-NEXT: VarDecl{{.*}}a -// CHECK-NEXT: CompoundStmt +// CHECK: CompoundStmt // CHECK-NEXT: ObjCAtCatchStmt{{.*}} catch all // CHECK-NEXT: CompoundStmt // CHECK-NEXT: ObjCAtFinallyStmt diff --git a/clang/test/AST/ast-dump-template-decls-json.cpp b/clang/test/AST/ast-dump-template-decls-json.cpp index 70f1d3b55f3ee..166bac874ca97 100644 --- a/clang/test/AST/ast-dump-template-decls-json.cpp +++ b/clang/test/AST/ast-dump-template-decls-json.cpp @@ -1,3132 +1,3417 @@ -// RUN: %clang_cc1 -std=c++17 -triple x86_64-unknown-unknown -ast-dump=json %s | FileCheck -strict-whitespace %s - -template -void a(Ty); - -template -void b(Ty...); - -template -void c(Ty); - -template <> -void c(float); - -template typename Uy> -void d(Ty, Uy); - -template -void e(Ty); - -template -void f(int i = N); - -template -void g(Ty); - -template -void h(); - -template -struct R {}; - -template <> -struct R {}; - -template -struct S {}; - -template -struct S {}; - -template -struct T {}; - -template -struct U {}; - -template -struct V { - template - void f(); -}; - -template -template -void V::f() {} - -template